为什么mysql全文搜索这么慢?

问题描述 投票:0回答:1

表xx_user_detail,user_id为int主索引,site1-site9为组合全文索引,总行数为500万行

SELECT * FROM xx_user_detail WHERE  (user_id=14) AND MATCH (site1,site2,site3,site4,site5,site6,site7,site8,site9)  AGAINST ('苏娟的食品店');

这个SQL1使用0.3s

SELECT * FROM xx_user_detail WHERE  (user_id=14 or user_id=15) AND MATCH (site1,site2,site3,site4,site5,site6,site7,site8,site9)  AGAINST ('苏娟的食品店');

这个SQL2使用2.5s

1 为什么 SQL2 仅添加一行就比 SQL1 慢?如何改进SQL2?
2 SQL1,扫描一行用了0.3s,正常吗?如果不行,如何改进?

mysql full-text-search
1个回答
0
投票

OR语句强制数据库搜索孔表

所以

SELECT * FROM xx_user_detail WHERE  (user_id=14 ) AND MATCH (site1,site2,site3,site4,site5,site6,site7,site8,site9)  AGAINST ('苏娟的食品店');
UNION
SELECT * FROM xx_user_detail WHERE  (user_id=15 ) AND MATCH (site1,site2,site3,site4,site5,site6,site7,site8,site9)  AGAINST ('苏娟的食品店');

会带来更快的结果

© www.soinside.com 2019 - 2024. All rights reserved.