1.首先考虑查询的表的字段是否比较多,如果不多,直接设计冗余字段,将多表查询变单表查询。
2.如果查询的字段比较多,就需要对sql语句进行优化了,通过explain关键字加在慢sql前执行看是否走的索引,如果没有走索引就创建索引。
通过查看结果中的type
type=ALL,全表扫描,MySQL遍历全表来找到匹配行**
type=index,索引全扫描,MySQL遍历整个索引来查询匹配行,并不会扫描表
type=range,索引范围扫描,常用于<、<=、>、>=、between等操作
type=ref,使用非唯一索引或唯一索引的前缀扫描,返回匹配某个单独值的记录行
type=eq_ref,类似ref,区别在于使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配
type=const/syste