MYSQL 写报表时优化的心得

1.分析SQL语句执行计划;

2.首先尽量减少SQL扫描的行,通过添加索引、组合索引、强制索引、修改SQL语句(添加条件);

3.遇到慢SQL(DEPENDENT SUBQUERY),则需要拆分SQL、修改SQL连接(STRAIGHT_JOIN)、修改驱动表顺序来提高SQL执行效率;

4.用到索引字段查询出来的数据如果超过总数据的15%,索引基本上失效,需要手动忽略索引,这样的效率更高;

5.通过添加中间表,为中间表添加不同的组合索引,再进行关联查询;

6.对于索引字段为字符串类型(varchar)并且key_len比较长的,为其创建中间表并把字段转化为crc32再进行关联查询;

7.对于在索引字段上使用函数的,对其修改条件,避免在索引上使用函数;

8.对于需要查询每天或者时间段的,原先需要每天或者每个时间段一条SQL的,通过SQL整合(elt、interval)为一条sql一次性查询出所有时间段的数据,减少数据库连接,避免查询重复的数据

9.通过观察数据,有些数据不需要从数据库查询的,只需根据上一次查询做计算的SQL,对其删除,在代码中做计算,减少数据库连接,提高效率;

10.字段长度尽量合适,过长会导致索引变长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值