1、将in改为exists
2、循环选用数据量少的表
3、过滤数据多的条件尽量排在前面
4、索引列不写入函数
例如select count(balance_id) from ai_balance_prov_info t where balance_id /100 >10 慢
select count(balance_id) from ai_balance_prov_info t where balance_id >10*100 快
5、like操作最好只加后%例如 XX%而不要前后%%,例如%XX%,如果有可能用 AXX% or BXX%代替%XX%
6、当删除大数据量的表的时候用truncate代替delete
7、尽量用where 代替having
2、循环选用数据量少的表
3、过滤数据多的条件尽量排在前面
4、索引列不写入函数
例如select count(balance_id) from ai_balance_prov_info t where balance_id /100 >10 慢
select count(balance_id) from ai_balance_prov_info t where balance_id >10*100 快
5、like操作最好只加后%例如 XX%而不要前后%%,例如%XX%,如果有可能用 AXX% or BXX%代替%XX%
6、当删除大数据量的表的时候用truncate代替delete
7、尽量用where 代替having
本文介绍了SQL查询优化的方法,包括使用EXISTS代替IN、选择数据量较小的表进行循环、将过滤条件置于索引列上并避免在索引列上使用函数等。此外还提到了LIKE操作的优化方式、大量数据删除时应使用TRUNCATE而非DELETE,以及尽可能用WHERE子句替换HAVING子句等内容。

被折叠的 条评论
为什么被折叠?



