1、ORDER BY的索引优化。如果一个SQL语句形如:

SELECT [column1],[column2],…. FROM [TABLE] ORDER BY [sort];

在[sort]这个栏位上建立索引就可以实现利用索引进行order by 优化。

2、WHERE + ORDER BY的索引优化,形如:

SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] = [value] ORDER BY [sort];

建立一个联合索引(columnX,sort)来实现order by 优化。

注意:如果columnX对应多个值,如下面语句就无法利用索引来实现order by的优化

SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] IN ([value1],[value2],…) ORDER BY[sort];

3、WHERE+ 多个字段ORDER BY

SELECT * FROM [table] WHERE uid=1 ORDER x,y LIMIT 0,10;

建立索引(uid,x,y)实现order by的优化,比建立(x,y,uid)索引效果要好得多。

MySQL Order By不能使用索引来优化排序的情况

* 对不同的索引键做 ORDER BY :(key1,key2分别建立索引)

SELECT * FROM t1 ORDER BY key1, key2;

* 在非连续的索引键部分上做 ORDER BY:(key_part1,key_part2建立联合索引;key2建立索引)

SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;

* 同时使用了 ASC 和 DESC:(key_part1,key_part2建立联合索引)

SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;

* 用于搜索记录的索引键和做 ORDER BY 的不是同一个:(key1,key2分别建立索引)

SELECT * FROM t1 WHERE key2=constant ORDER BY key1;

* 如果在WHERE和ORDER BY的栏位上应用表达式(函数)时,则无法利用索引来实现order by的优化

SELECT * FROM t1 ORDER BY YEAR(logindate) LIMIT 0,10;

mysql order优化2019_mysql 增加排序 性能差很多 怎么优化相关推荐

  1. c++ sort 从大到小排序_算法的艺术:MySQL order by对各种排序算法的巧用

    在 [精华]洞悉MySQL底层架构:游走在缓冲与磁盘之间 这篇文章中,我们介绍了索引树的页面怎么加载到内存中,如何淘汰,等底层细节.这篇文章我们从比较宏观的角度来看MySQL中关键字的原理.本文,我们 ...

  2. MySQL order by的不同排序规则

    explain语句执行的结果中,Extra项中含有Using filesort表示需要排序,MySQL会给每个线程分配一块内存用于排序,称为sort_buffer. 全字段排序 全字段排序在内存中进行 ...

  3. MySQL - order by 出现 using filesort根因分析及优化

    文章目录 Pre Case table 模拟数据 故障复现 咋办? 方案一 加limit ,少取一点? using filesort 到底是个什么鬼???? filesort 步骤 rowid 排序 ...

  4. mysql order by 多字段排序

    工作中需用到order by 后两个字段排序,但结果却产生了一个Bug,以此备录. [1]复现问题场景 为了说明问题,模拟示例数据库表students,效果同实例. 如下语句Sql_1: 1 SELE ...

  5. MySQL ORDER BY IF() 条件排序

    在做sqlzoo的时候,碰到一个SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部 通过的方法就是IN语句(也可以通过IF语句) 自己做了个测试,如下,这个是表的所有 ...

  6. MySQL ORDER BY 使用自定义排序顺序

    ORDER BY 子句可以使用FIELD() 函数为列中的值定义自定义的排序顺序. 例如下表: +----------------+ | orders | +----------------+ | o ...

  7. MySQL Order by 和 max哪个性能更高更好?

    很多同学可能会遇到这个问题:废话不多说,直接上code 某表: select count(1) from tbname 统计有2W的数据: ORDER BY表现如图:142毫秒 select id f ...

  8. mysql proxy性能差_mysql性能的检查和优化方法

    mysql在遇到严重性能问题时,一般都有这么几种可能: 1.索引没有建好; 2.sql写法过于复杂; 3.配置错误; 4.机器实在负荷不了; 1.索引没有建好 如果看到mysql消耗的cpu很大,可以 ...

  9. 读《MySQL性能调优与架构设计》笔记之ORDER BY,GROUP BY 和DI STI NCT 优化

    1.1. ORDER BY 的实现与优化 在MySQL 中,ORDER BY 的实现有如下两种类型: ◆ 一种是通过有序索引而直接取得有序的数据,这样不用进行任何排序操作即可得到满足客户端要求的有序数 ...

  10. mysql 中如何增加查询排序性能

    说起优化排序的工作,本人菜鸟一枚,如果百度找到的我想学习请转道,因为我也不能保证一定准确. 如果发现我写的不好请留言,留下微信,我给你发红包 这块的学习领域在高性能mysql中175页使用索引排序,查 ...

最新文章

  1. StaticLayout的介绍/使用
  2. 为什么Android变得对商业世界至关重要?
  3. mysql %用户域_MySQL运维---用户权限及管理
  4. WPF PRISM开发入门一( 初始化PRISM WPF程序)
  5. 软件研发工程师转行机器学习之路
  6. viterbi算法_序列比对(十四)——viterbi算法和后验解码的比较
  7. php数组比对算法,php学习之两种方法使用比较数组差异的array_diff()函数
  8. 圣地牙哥『华南理工大学南加州校友会』理事会全体理事及部份校友聚会纪实...
  9. 路由与交换技术笔记(eNSP)
  10. python人口普查数据数据分析_Python:第六次全国人口普查数据分析及可视化(pandas、matplotlib)...
  11. 最小生成树-Borůvka算法
  12. 在腾讯云部署一个自己的网站 问题总结
  13. 实现一周之内自动登录的 cookie和session还有localStorage的存储机制
  14. 【视频演示】B站视频演示
  15. 自制拖把机器人_懒出新境界:可以自己洗拖布的机器人
  16. 解决ERROR: distribution port 25672 in use by another node: rabbit@
  17. 计算机考研【干货满满】:2021武汉理工计算机考研经验分享
  18. android实现新闻内容显示功能,Android开发实现自定义新闻加载页面功能实例
  19. 学习 lt MATLAB gt 心得,lt;lt;MATLAB可视化大学物理学gt;gt;使大学物理更具体,更有趣。 - 物理 - 小木虫 - 学术 科研 互动社区...
  20. 免费银行卡验证API接口

热门文章

  1. inceptionv 1-4
  2. 自定义分区partitioner实现数据分区存储
  3. Mysql优化(出自官方文档) - 第三篇
  4. 网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语
  5. ie为什么那么垃圾(不是ie垃圾,是ie用的人太多了,很多在用低版本)
  6. Windows PowerShell初体验——.NET对象支持
  7. MySql_SQLyog快捷键
  8. 通用JdbcDao更新,增加动态数据源,支持权重和读写分离
  9. 细数2011TurboMail企业邮箱功能新飞跃
  10. springboot输出日志到文件配置