- 论坛徽章:
- 1
|
100万+条数据,执行如下SQL语句
SELECT * FROM [TABLE]
WHERE
[column1] = [value1] AND
[column2] = [value2] AND
[column3] = [value3] AND
ORDER BY [id] DESC
LIMIT 0, 10;
其中列column1,column2,column3,id的值都是数字,id是主键,取出0,10共10条数据,按照主键降序排列。
创建了索引myindex(column1,column2,column3,id)后,这个sql语句的运行时间是0.00x秒级,速度理想。
但实际中还需要用到以下查询
1.SELECT * FROM [TABLE] WHERE [column1] = [value1] AND [column2] = [value2] ORDER BY [id] DESC LIMIT0, 10;
2.SELECT * FROM [TABLE] WHERE [column1] = [value1] ORDER BY [id] DESC LIMIT0, 10;
1的执行时间在0.x秒级,速度明显慢了;2的执行时间在x秒级,速度慢,已经进了mysql的slow-log日志了。
explain sql发现查询的时候都用到了索引myindex(column1,column2,column3,id)怎么执行速度差别这么大?
真不知道怎么解决了,高手帮忙啊!
|
|