返回顶部
首页 > 资讯 > 数据库 >MYSQL order by排序导致效率低小优化
  • 812
分享到

MYSQL order by排序导致效率低小优化

2024-04-02 19:04:59 812人浏览 安东尼
摘要

有一个主表left join 同一个小表两次分页语句,因为order by 导致执行时做排序,从执行计划中Using filesort ,以及profile中creating sort inde

MYSQL order by排序导致效率低小优化

有一个主表left join 同一个小表两次分页语句,因为order by 导致执行时做排序,从执行计划中Using filesort ,以及profile中creating sort index 耗时可以看出。

MYSQL order by排序导致效率低小优化

MYSQL order by排序导致效率低小优化


从trace文件可以看出filesort的计算:


"join_execution": {
        "select#": 1,
        "steps": [
          {
            "filesort_infORMation": [
              {
                "direction": "desc",
                "table": "`topxxx` `t`",
                "field": "create_date"
              }
            ] ,
            "filesort_priority_queue_optimization": {
              "limit": 20,
              "rows_estimate": 2302749,
              "row_size": 264,
              "memory_available": 4194304,
              "chosen": true
            } ,
            "filesort_execution": [
            ] ,
            "filesort_summary": {
              "rows": 21,
              "examined_rows": 216594,
              "number_of_tmp_files": 0,
              "sort_buffer_size": 5712,
              "sort_mode": "<sort_key, rowid>"
            } 
          }
        ] 
      } 
    }



后面通过索引加入排序字段后减去排序操作,排序字段放在索引的最前面。

create index idx_topxxx1 on topic (create_date desc,is_del,is_en);


MYSQL order by排序导致效率低小优化

trace 中可以看出排序使用了索引。


            "reconsidering_access_paths_for_index_ordering": {
              "clause": "ORDER BY",
              "index_order_summary": {
                "table": "`topic` `t`",
                "index_provides_order": true,
                "order_direction": "desc",
                "index": "idx_topxxx1",
                "plan_changed": true,
                "access_type": "index"
              } 
            } 
          },
          {


以此记录。

您可能感兴趣的文档:

--结束END--

本文标题: MYSQL order by排序导致效率低小优化

本文链接: https://lsjlt.com/news/49906.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作