我在使用 mysql 全文搜索时遇到问题。当我更改关键字的顺序时,搜索速度会发生变化。例如我有 4 个查询,它们都返回相同的结果:
1)快速(1 秒)
SELECT * FROM table WHERE (MATCH (column_data) AGAINST('+english* +php*' IN BOOLEAN MODE)
2) 慢(10 秒)
SELECT * FROM table WHERE MATCH (column_data) AGAINST('+php* +english*' IN BOOLEAN MODE)
3)快速(1 秒)
SELECT * FROM table WHERE MATCH (column_data) AGAINST('+php*' IN BOOLEAN MODE) AND (MATCH (column_data)) AGAINST('+english*' IN BOOLEAN MODE))
4) 慢(10 秒)
SELECT * FROM table WHERE (MATCH (column_data) AGAINST('+english*' IN BOOLEAN MODE)) AND (MATCH (column_data) AGAINST('+php*' IN BOOLEAN MODE))
如何优化它?
最佳答案
我找到了答案。那是因为每个关键字的结果数。我们应该把关键字 has small result 放在最前面。
关于mysql - mysql fulltext 的性能取决于关键字的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44236423/