我在一个由数百万条记录填充的大表上运行SQL查询。WHERE条件是一系列的LIKEs,将输入与几个文本字段进行比较。
下面是针对各种输入运行查询所需的时间(平均每个输入运行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)。我用其他字母(不重复的etc)代替‘a’进行了检查,结果大致相同。
我遗漏了什么?
谢谢
发布于 2012-08-19 18:48:03
正如上面的评论所提到的,它更有可能与表中这些数据的分布有关。尝试在表上创建索引。我不能给你指出正确的索引和方法,但如果你张贴你的模式等,我很乐意帮助你。
其次,Like从来都不是好的,难道你不能在应用程序代码上改进它,然后运行equals吗?
https://stackoverflow.com/questions/10673742
复制相似问题