作家
登录

MySQL order by原理以及优化?这篇来给你逐步解析

作者: 来源: 2017-10-25 15:09:56 阅读 我要评论

WHERE key_part1> constant ORDER BY key_part2; 
  1. SELECT * FROM t1 WHERE key2=constant ORDER BY key1; 

5 rder by 和 group by 字段列不一致

  1. SELECT * FROM t1 WHERE key_part1=constant ORDER BY key_part2 group by key_part4; 

6. 索引本身是无序存储的,比如 hash 索引,不克不及应用索引的有序性。

7. order by 字段只被索引了前缀 ,key idx_col(col(10))

  1. select * from t1 order by col ; 

8. 对于还有 join 的接洽关系萌芽,排序字段并非全部来自于第一个表,应用 explain 查看履行筹划第一个表 type 值不是 const 。

当无法避免排序操作时, 又该若何来竽暌古化呢?很显然, 优先选择 using index 的排序方法,在无法知足应用索引排序的情况下,尽可能让 MySQL 选择应用第二种单路算法来进行排序。如许可以削减大年夜量的随机 IO 操作, 很大年夜幅度地进步排序的效力。

1. 加大年夜 max_length_for_sort_data 参数的设置

2. 去掉落不须要的返回字段

当内存不是很充裕时, 不克不及简单地经由过程强行加大年夜膳绫擎的参数来强迫 MySQL 去应用改进版的排序算法, 不然可能会造成 MySQL 不得不将数据分成很多段, 然落后行排序, 如许可能会得不偿掉。此时就须要去掉落不须要的返回字段, 让返回结不雅长度适应 max_length_for_sort_data 参数的限制。

同时也要规范 MySQL 开辟规范,尽量避免大年夜字段。当有 select 萌芽列含有大年夜字段 blob 或者 text 的时刻, MySQL 会选择惯例排序。

" algorithm to use. It normally uses the modified algorithm except when or columns are involved, in which case it uses the original algorithm."

3. 增大年夜 sort_buffer_size 参数设置

这个值如不雅过小的话, 再加上你一次返回的条数过多, 那么很可能就会分很多次进行排序, 然后最后将每次的排序结不雅再串联起来, 如许就会更慢, 增大年夜 sort_buffer_size 并不是为了让 MySQL 选择改进版的排序算法, 而是为了让 MySQL 尽量削减在排序过程中对须要排序的数据进行分段, 因为分段会造成 MySQL 不得不应用临时表来进行交换排序。然则这个值不是越大年夜越好:

1. sort_buffer_size 是一个 connection 级参数, 在每个 connection 第一次须要应用这个 buffer 的时刻, 一次性分派设置的内存。

2. 排序字段在不合的索引中,无法应用索引排序

2. sort_buffer_size 并不是越大年夜越好, 因为是 connection 级的参数, 过大年夜的设置 + 高并发可能会耗尽体系内存资本。

3. 据说 sort_buffer_size 跨越 2M 的时刻, 就会应用 mmap() 而不是 malloc() 来进行内存分派, 导致效力降低。

四 参考文┞仿

[1] MySQL order by 调优官方文档

[2] MySQL 排序道理与案例分析

【编辑推荐】

  1. 应用数据库SA暗码登录修改体系治理员暗码
  2. 硬件是若何影响数据库的成长
  3. 对MySQL数据库复制中断的处理
  4. MySQL Schema与数据类型的优化
  5. 数据库安然的5个根本实践
【义务编辑:庞桂玉 TEL:(010)68476606】

  推荐阅读

  iOS自定义启动界面 附代码

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 简介:比来在重构app,原app用的是xcode自带的启动图设置。但相对来说自定义启动图可扩大性更强一点,今天花>>>详细阅读


本文标题:MySQL order by原理以及优化?这篇来给你逐步解析

地址:http://www.17bianji.com/lsqh/38202.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)