Karte 最近的时间轴更新
Karte

Karte

V2EX 第 530643 号会员,加入于 2021-01-27 09:07:54 +08:00
Karte 最近回复了
70 天前
回复了 dafuyang 创建的主题 MySQL 兄弟们,关于 sql 优化的问题想请教一下
你可以通过设定 max_length_for_sort_data 强制走 rowId 排序, 这时候只有 2 个字段参与了排序. 而全字段排序则会导入你查询的所有列数据, 体积差异比较大.
在 rowId 排序完后会自动回表查询数据. 这样走的话应该不会触发 filesort 排序
70 天前
回复了 dafuyang 创建的主题 MySQL 兄弟们,关于 sql 优化的问题想请教一下
补充下, rowId 排序好之后会通过主键回表将数据返回. 上面说错了.
70 天前
回复了 dafuyang 创建的主题 MySQL 兄弟们,关于 sql 优化的问题想请教一下
排序可以分为:
1. 全字段排序. 指的是将查询的所有字段都存入 sort_buffer 然后进行排序, 如果数据过大, 会使用分治算法将数据拆分为小块存到磁盘进行排序.
2. rowId 排序. 排序时只将排序字段和当前主键 id (没有就是 rowId) 进行排序, 排序完成通过主键进行排序返回.

具体选择的是哪种排序则是通过你字段的长度判断的, 在 InnoDB 中有一个 max_length_for_sort_data 用于表示使用何种排序. 超过这个字段的值就会使用 rowId 排序.
同样, 还有 sort_buffer_size 用于控制 sorf_buffer 的大小.
183 天前
回复了 storyxc 创建的主题 程序员 刚收到条钓鱼短信,差点吃钩了
提示: 狗日的, 禁止打开
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   1850 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 11:44 · PVG 19:44 · LAX 03:44 · JFK 06:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.