MYSQL ORDER BY 优化问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 07:17:48
GROUP BY 子句而无需做额外的排序。
尽管 ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 ORDER BY 字段在 WHERE 子句中都被包括了。下列的几个查询都会使用索引来解决 ORDER BY 或 GROUP BY 部分:

SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;
SELECT * FROM t1 WHERE key_part1=constant ORDER BY key_part2;
SELECT * FROM t1 WHERE key_part1=constant GROUP BY key_part2;
SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC;
SELECT * FROM t1
WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC;
这个第一句是怎么使用索引的?我在PHPMYADMIN中测试半天,发现他没有使用索引,可能是我索引建立的不对或者SQL语句不对,第一句的key_part1和key_part2是什么意思啊?
一楼的大哥你说的对,但是我知道这个key_part1,key_part2是索引,而且是多列索引中的前两个,只是这样使用,是如何优化ORDER BY 语句的呢?我这显示跟没有优化啊,只有存在WHERE子句时才会使用索引,而且ORDER BY 只有在特定情况下使用索引。

按这个题目的意思理解,
key_part1 和key_part2 就是t1这个表的索引啦。
也就是建表的时候的Primary Key或者是Key啦。

在mysql命令行下 desc t1
看看 key_part1 key_part2 有没有 KEY 或者MUL属性 如果有,那就是索引啦。