一、一般情况下的SQL优化
对于单表查询的SQL,如果跑的慢,十有八九是因为那个SQL没有使用索引,第一步可以先去查看MySQL的执行计划,看看哪个SQL有没有用到索引,如果没有,就改写一个SQL让它去用上索引,或是额外再加一个索引。
二、执行计划
如何查看执行计划?如:
explain select * from table;
得到的结果为:
table | type | possible_keys | key | key_len | ref | rows | Extra
table:那个表
type:走的是全表扫描还是索引?如何走的索引
possible_keys:显示可能使用的索引
key:实际使用的索引
key_len:使用索引的长度
ref:联合索引的哪一列被用了
rows:一共扫描和返回了多少行
Extra:如using filesort(需要额外进行排序)