插入优化
- 批量操作:如果插入数据较多,尽量批量操作,减少数据库的连接、开启、关闭
- 手动提交事务
- 主键顺序插入
主键优化
InnoDB存储引擎中,表数据都是根据主键顺序存放的,主键没有顺序会造成页分裂,造成更多的计算消耗
- 插入数据时,尽量顺序插入,主键最好自增或有序
- 在满足业务的情况下,尽量降低主键长度
order by
- 根据排序字段建立合适的索引,多字段排序时,遵循最左前缀原则
- 尽量使用覆盖索引,防止回表查询
- 多字段排序,一个升序一个降序,此时需要注意联合索引在创建时的规则(AES/DESC)
- 如果不可避免的出现
filesort,大数据量排序时,可以适当增大排序缓冲区大小sort_buffer_size,默认256K
group by
- 在分组操作时,可以使用索引提高效率
- 索引的操作也要满足最左前缀法则
limit
- 分页查询时,通过创建覆盖索引能比较好的提高性能,防止回表查询
- 可以通过覆盖索引加子查询形式进行优化
count
update优化
InnoDB的行锁是针对索引加的锁,不是针对记录加的锁,并且该索引不能失效,否则会从行锁升级为表锁