Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2231849
  • 博文数量: 533
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7046
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(533)

文章存档

2024年(2)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: LINUX

2011-04-14 17:24:24



在某些情况下,MySQL不能使用索引来解决ORDER BY,尽管它仍然使用索引来找到匹配WHERE子句的行。这些情况包括:

·         对不同的关键字使用ORDER BY:

·                SELECT * FROM t1 ORDER BY key1, key2;
·         对关键字的非连续元素使用ORDER BY:

·                SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;
·         混合ASC和DESC:

·                SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;
·         用于查询行的关键字与ORDER BY中所使用的不相同:

·                SELECT * FROM t1 WHERE key2=constant ORDER BY key1;
·         你正联接许多表,并且ORDER BY中的列并不是全部来自第1个用于搜索行的非常量表。(这是EXPLAIN输出中的没有const联接类型的第1个表)。

·         有不同的ORDER BY和GROUP BY表达式。

·         使用的表索引的类型不能按顺序保存行。例如,对于HEAP表的HASH索引情况即如此。
阅读(555) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~