【发布时间】:2018-08-19 04:56:24
【问题描述】:
我有一个查询,我对结果感到满意,但不是因为查询的性能,我想从文本中选择一些词(不允许部分词)(即我想选择:“dog”而不是“dogs ")
SELECT name FROM texts WHERE name rlike '[[:<:]]text[[:>:]]' LIMIT 0, 50;
我用“like '% text %'”测试了相同的选择,速度要快得多,但没有正确选择单词边界作为“文本”。 (以.结尾)或以!开头,句子开头,......有太多的可能性......
有什么方法可以改进/修改我的查询并获得相同的结果?
谢谢
【问题讨论】:
-
name like '%text%' and name rlike '[[:<:]]text[[:>:]]'怎么样?第一个条件是多余的,但可能会提高性能。 -
全文索引的问题在于拆分虚线词,即“知名”搜索 (well,known) 而不仅仅是“众所周知”如何纠正?
标签: mysql sql performance mariadb