业务+索引
业务+sql语句
1、慢sql捕捉设置打开
2、explain sql
1、查看sql扫描行数
优化器可能不靠谱,analyze table tablename 就可以重新统计索引信息
重建索引,减少空洞
alter table T drop index k;
alter table T add index(k);
重建主键索引:alert table T engine = InnoDB
2、查看使用的索引
- 是否全表扫描,
- 是否使用有是用到索引,
- 使用的索引是否正确,force_index强制走索引
- 联合索引注意索引顺序,使用时最左前缀原则,注意索引大小,根据业务合理判断
-
3、避免使用*
4、字段优化
使用varchar(变长)代替char(固定长度)
- 过长字符串优化,可以考虑前缀索引,控制长度,和索引大小
- 注意隐式转换 num = 1 其实是 num = ‘1’
5、数据库flush时机
redo log大小,checkpoint的flush时机
注意磁盘io,修改innodb_io_capacity
6、innodb刷盘速度
7、redo log设置
8、字符集
9、注意锁的问题
表锁和行锁
gap-lock
