记一下MySQL的优化相关信息
- inner join、left join on 后的关联字段,必须加索引(阿里巴巴代码规范有提到)
- 多表关联,需要确保编码规范一致,在2022遇到过一个表是utf8,另一个表是character
- 多表关联,需要确保关联字段数据类型一致,在2022同样遇到过一个字段是int,另一个字段是varchar
- 多表关联,左表数据量比右表多,使得大表驱动小表,这样效率更高
- 多表关联,可能存在MySQL修改左右表顺序的情况,这时,需要straight_join限制左右表顺序
- 多表关联,在on后面,不要使用数学计算、函数,这样会导致索引失效(2021年遇到过项目外包使用date_format导致索引失效)
- 多表关联,where后的条件顺序,会影响到效率,要确保左表的条件在右表的条件前面