根据查询字符串中“@”的位置的主要时间差异 - 为什么?

时间:2012-05-20 13:17:03

标签: mysql sql performance

我在由数百万条记录填充的大型表上运行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'来检查这个,结果或多或少相同。

我错过了什么?

由于

1 个答案:

答案 0 :(得分:0)

如上面的评论所述,它更可能与表格中此数据的分布有关。尝试在表上创建索引。我不能指出你正确的索引和如何,但如果你发布你的架构等我很乐意帮助你。

其次,喜欢永远不会好,你不能在应用程序代码上改进它并改为运行equals吗?