首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rlike MariaDB查询速度慢

Rlike MariaDB查询速度慢
EN

Stack Overflow用户
提问于 2018-03-11 04:35:02
回答 1查看 80关注 0票数 0

我有一个查询,我对结果感到满意,但不是为了它的性能查询是,我想从文本中选择一些单词(不允许部分单词)(即我想选择:“狗”而不是“狗”)

代码语言:javascript
复制
SELECT name FROM texts WHERE name rlike '[[:<:]]text[[:>:]]' LIMIT 0, 50;

我已经用"like '% text %‘“测试了相同的select,速度要快得多,但是没有正确地选择单词边界作为”text“。(以.结尾。)或者用!开始句子,....there有太多的可能性...

有什么方法可以改进/修改我的查询,得到相同的结果吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-03-12 08:56:22

代码语言:javascript
复制
WHERE MATCH(name) AGAINST('well-known' IN BOOLEAN MODE)
  AND RLIKE '[[:<:]]well-known[[:>:]]'

FULLTEXTLIKE快;LIKERLIKE快。

问题出在FULLTEXT的例外情况(短词、停用词等)。如果可行,让你的应用程序查看搜索词来决定是使用这个FULLTEXT AND技巧还是使用Paul的LIKE AND技巧。

行动迟缓的原因是...在原始查询(只有RLIKE)中,必须读取每一行,并且必须扫描每个name中的“文本”。

FULLTEXT更快(可能快得多),因为它可以使用索引直接转到包含“文本”的行。

LIKERLIKE更快,因为算法更简单。(但它仍然必须获取每个name。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49213760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档