问题场景:简简单单数据量百万的单表,外关联几个十万级别的表,出现慢查询的的问题
某SpringBoot项目中,使用Mysql数据库,某列表关联查询的表众多,且本身数据量较大(百万级),首先想到的就是做数据查询索引优化
需要把握的几个要素
在关联查询中,需要JOIN的字段,数据类型必须绝对一致
如果数据类型不一致,将导致索引失效,全表扫描,这也是EXPLAIN检查执行计划后,出现all需要检查的一项内容
超过三个表禁止JOIN
效率下降太多了
多表关联时保证被关联的字段有索引
完成以上几点后,使用explain检查执行计划
保证除了主表没有全表扫描,这样的列表一般查询性能就不会太差了