- 论坛徽章:
- 0
|
原帖由 UIRL 于 2007-7-31 15:49 发表 ![]()
一个表,当前约50万条记录, 每日增长 3000 条左右.
SELECT * FROM table WHERE key1 = CONTANST AND key2 = CONTANST ORDER BY key DESC LIMIT N;
其中, key 为主键, key1 为索引字段.
请问有什么方法可 ...
首先,单独针对于你的这个order by优化的话,只能将排序字段加入目前利用到的索引里面才能利用现有索引进行排序。
其次,考虑到你的查询条件中的key1上面有索引,而key1的条件是constant,所以,可以通过如下方式来尝试优化一下:
1、创建组合索引(key1,key),同时将sql语句的order by更改成如下:order by key1, key ...
2、如果sql执行计划能够按照预期的走,那么可以删除原有key1的索引了
再次,看看key2的值分布情况,如果不是非常集中,也可以针对于你这条语句再做一点点优化,也就是将key2也加入到索引中,组成一个(key1,key2,key)这样的索引,然后再测试一下效果。
希望这些信息对你能有用。 |
评分
-
查看全部评分
|