以前一直不明白全文索引的作用,最近数据库cpu老是很高,后台管理查询电话的时候 特别慢,所以研究了下,以下对比不一定准确,留着做个参考!
1、(正常like 查询)
SELECT 联系电话
FROM 二手车出售 AS ER
WHERE (联系电话 LIKE '%13842421333%') AND (编号 > 4) OR
(编号 > 4) AND (',' + 联系电话 + ',' LIKE '%,25738,%') OR
(编号 > 4) AND (',' + 联系电话 + ',' LIKE '%,30608,%')
Cpu:17674
Reads:169864
Duration:2346
2、全文索引查询
SELECT 联系电话
FROM 二手车出售 AS ER
WHERE (编号 > 4) AND CONTAINS(联系电话, '"13842421333" or "25738" or "30608"')
Cpu:16
Reads:1364
Duration:17
3、正常like查询
SELECT 联系电话
FROM 二手车出售
WHERE (',' + 联系电话 + ',' LIKE '%,137428,%') OR
(',' + 联系电话 + ',' LIKE '%,138509,%')
Cpu:14026
Reads:171094
Duration:1055
4、全文索引查询
SELECT 联系电话
FROM 二手车出售
WHERE CONTAINS(联系电话, '"137428" OR "138509"')
Cpu:15
Reads:864
Duration:19
5、使用or 全文索引查询,和4条比性能差一些
SELECT 联系电话
FROM 二手车出售
WHERE CONTAINS(联系电话, '"137428"') OR
CONTAINS(联系电话, '138509')
Cpu:16
Reads:878
Duration:17
通过简单的对比,文本类型的字段搜索,做全文索引还是比较好的。