SQL优化实战

本文深入探讨了SQL优化实战,包括Order by的优化策略,如遵循最左前缀法则避免文件排序,以及Group by的优化。此外,还介绍了分页查询、Join操作的优化方法,如确保索引一致性和使用合适的JOIN算法。对于in和exists的选择,文章建议根据数据规模来决定。同时,提到了count优化和复杂SQL的处理,如利用Redis缓存计数和应用综合优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL优化实战

1. Order by优化

在Order by中,如果排序会造成文件排序(在磁盘中完成排序,性能比较差),就说明没有命中索引,这个时候可以使用最左前缀法则,让排序遵循最左前缀法则,避免文件排序

1)ORDER BY的字段改到一种表、不要夸表(设计表结构时需注意这一点)

2)OEDER BY字段建索引、多个字段时建联合索引(联合索引的字段顺序要与ORSER BY中的字段顺序一致)

3)ORDER BY中字段中联合索引的所有字段DESC或ASC要统一,否则索引不起作用

--- name,age,position 均为索引列
--- 没有使用文件查找
Explain select * from employees where name='customer' and position='dev' order by age position
--- 使用文件查找 using fliesort
Explain select * from employees where name='customer' order by position
--- 没有使用文件排序
Explain select * from employees where name='customer' order by age,position
--- 不满足最左前缀法则,使用using fliesort
Explain select * from employees where name='customer' order by position,age
--- 满足最左前缀法则使用索引排序
Exp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值