提高模糊查询速度!求大神指点
使用数据库工具 SQL2000
TABLE_1为主表
TABLE_2为从表
关联字段为ID
查询字段COLUMN_1
对从表的字段进行全模糊查询,从表有大概200W条记录
从表查询字段COLUMN_1建立非聚集索引
SELECT ID FROM TABLE_1 WHERE EXISTS(SELECT ID FROM TABLE_2 WHERE TABLE_1.ID=TABLE_2.ID AND TABLE_2.COLUMN_1 LIKE '%1234567%')
查询分析器显示为3秒
SELECT ID FROM TABLE_1 WHERE ID IN (SELECT ID FROM TABLE_2 WHERE TABLE_2.COLUMN_1 LIKE '%1234567%' GROUP BY ID)
查询分析器显示为3秒
SELECT ID FROM TABLE_2 WHERE TABLE_2.COLUMN_1 LIKE '%1234567%'
查询分析器显示为1秒
提问:
1,上面2个语句时间相同,哪种理论上效率更高?应该是EXISTS吧?
2,上面2个语句是否有优化空间,让查询变快?
3,有文章说索引对前模糊和全模糊是不起作用的,可是第3条语句执行很快,是否是索引在起作用?还是表结构和数据量起主要原因?