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

mysql 中如何增加查询排序性能,第1张

1.ALL 全表扫描

例:select * from user

2.index 索引全扫描

例:select id from user

3.range 索引范围扫描(>、<、>=、<=、=、between等)

例:select * from user where id >= 5

4.ref 使用非唯一索引扫描,或唯一索引的前缀扫描

例:select * from user where id = 5

join中也常出现ref

5.eq_ref 使用唯一索引(多表连接用主键或unique key作关联条件)

例:select * from teacher a, student b where a.id = b.id

6.const/system 常量

例:select * from(select * from user where id = 1)

备注:临时表中最多有一个匹配行(主键不重复),mysql会当成常量

等于是select * from 常量

2.1 排序方式

数据量小则在内存排序, 数据量大则使用磁盘排序

内存排序 : 直接使用"快速排序"

磁盘排序 : 先将数据分块, 对每个独立的块使用"快速排序", 并将各个块的排序结果存在磁盘上, 然后将各个排好序的块进行合并(merge), 最后返回排序结果

2.2 排序算法

3. 注意点 :


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8685550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存