当前位置:Gxlcms > 数据库问题 > MySQL查询优化

MySQL查询优化

时间:2021-07-01 10:21:17 帮助过:35人阅读

  1. 旧:读取行指针和需要排序的字段,对其 进行排序,然后在根据排序结果读取所需要的行

  2. 新:先读取查询所需要的所有的列,然后再根据给定列进行排序,最后直接返回排序结果

  3. 比较:

  • 优点:只需要一次顺序IO,比起两次IO(其中还有一次随机IO)有了很大优势

  • 缺点:引入很多无用的列,白白占用着内存,对排序无影响

文件排序:
  • 对每一个排序记录都会分配一个足够长的定长空间来存放,有时排序占用的空间比数据存储占用的空间还要多

  • 对于关联查询来数order by子句中所有的列都来自于第一个表,那么MySQL在关联第一张表的时候就进行文件排序(Extra中可看到Using Filesort)

  • 否则会先将关联的结果放到临时表中,然后在所有表都关联完成后再进行文件排序,5.6版本之后可以将Limit提前执行,避免了排序大量的数据到最后只需要很少的尴尬处境


MySQL查询优化

标签:mysql   查询优化   

人气教程排行