我在由数百万条记录填充的大型表上运行SQL查询。 WHERE条件是一系列LIKE,将输入与几个文本字段进行比较。
以下是查询为各种输入运行所需的时间(平均每次运行3-5次)。
* 'aaaa' : ~3.1 seconds
* 'aaa@' : ~2 seconds
* 'aa@a' : ~9.7 seconds
* 'a@aa' : ~9.7 seconds
* 'aa@a' : ~9.8 seconds
所有查询都返回了相似数量的结果(12-13)。 我用其他字母(非重复等)而不是'a'来检查这个,结果或多或少相同。
我错过了什么?
由于
答案 0 :(得分:0)
如上面的评论所述,它更可能与表格中此数据的分布有关。尝试在表上创建索引。我不能指出你正确的索引和如何,但如果你发布你的架构等我很乐意帮助你。
其次,喜欢永远不会好,你不能在应用程序代码上改进它并改为运行equals吗?