SQL优化

1、插入数据

插入数据时,如果插入数据很大,尽量选择批量插入数据。
手动控制事务,尽量不要频繁开启提交事务。
主键尽量顺序插入,性能比主键乱序要好。

大批量插入数据

一次性插入百万记录,使用insert语句插入性能较低,此时可以使用load指令进行插入
在这里插入图片描述

2、主键优化

主键长度尽量短,尽量保持顺序插入。推荐使用AUTO_INCREMENT主键自增
主键乱序插入会产生页分裂的问题。

页分裂

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

页合并

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、order by 优化

在这里插入图片描述

4、group by优化

在这里插入图片描述

5、limit优化

limit分页查询,越往后效率越低。
比如:查询(20000,20010)之间的数据,会先查出20010之前的所有数据,然后进行排序,再输出范围之间的数据。排序会浪费大量的时间
优化操作:覆盖索引+子查询

6、count优化

不方便优化,一般要使用count(*),是最快的

7、update优化

where条件尽量选择主键或者其他索引列,否则行锁就会升级为表锁,影响其他线程对数据库的操作。
注意:InnoDB的行锁是针对索引加的锁,不是根据记录字段加的锁,该索引不能失效,否则会从行锁升级为表锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值