码迷,mamicode.com
首页 > 数据库 > 详细

mysql排序索引优化

时间:2018-01-29 17:31:46      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:limit   buffer   设置   length   查询   size   无法   where   优化   

为排序使用索引

KEY a_b_c (a,b,c)

 

order by 能使用索引最左前缀

-order by a
-order by a,b
-order by a,b,c
-order by a desc,b desc,c desc

 

如果where使用索引的最左前缀定义为常量,则order by能使用索引

-where a=const order by b,c
-where a=const and b=const order by c
-where a=const order by b,c
-where a=const and b>const order by b,c

 

不能使用索引进行排序

-order by a asc,b desc,c desc //排序不一致
-where g=const order by b,c //丢失a索引
-where a=const order by c //丢失b索引
-where a=const order by a,d //d不是索引的一部分
-where a in (...) order by b,c //对于排序来说,多个相等条件也是范围查询
 

GROUP BY 关键字优化

1、group by 实质是先排序后分组,遵照索引的最佳左前缀。 
2、当无法使用索引列,增大max_length_for_sort_data参数的设置+增大sort_buffer_size参数的设置 
3、where 高于having,能写在where限定的条件就不要去having去限定了。

mysql排序索引优化

标签:limit   buffer   设置   length   查询   size   无法   where   优化   

原文地址:https://www.cnblogs.com/leedaily/p/8378142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!