以前一直不明白全文索引的作用,最近数据库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
通过简单的对比,文本类型的字段搜索,做全文索引还是比较好的。