可怜我有一个非常简单的表有三列:MySQL的 - 在选择业绩从一个简单的表格
- A BigINT,
- Another BigINT,
- A string.
前两列被定义为索引,也没有重复。而且,这两列的价值都在增长。
该表有近400K条记录。
我需要选择字符串时的值是内的那些塔1和两个,为了词:
SELECT MyString
FROM MyTable
WHERE Col_1 <= Test_Value
AND Test_Value <= Col_2 ;
结果可以是找不到或单个值。
查询需要几乎整整一秒的时间,而直觉上(想象一个数组中的二进制搜索),它应该只需要一小段时间。
我检查了索引类型,它是两列(1和2)的BTREE。
任何想法如何提高性能?
在此先感谢。
编辑: 的解释如下:
选择类型:简单, 类型:范围, 可能的关键字:PRIMARY 重点:小学, 密钥长度:8, 行:441, 已过滤:33.33 , 额外:使用where。
有复合索引? – YOU
在寻求绩效建议时,有必要展示确切的表格结构和索引。使用EXPLAIN命令来让查询计划者描述它正在做什么也是有帮助的。请[编辑]您的问题以包含这些项目。 –
没有复合索引@YOU。 – FDavidov