Mysql sql查询优化
1.单个条件未加索引
对应的执行计划
从查询计划中可以看出该查询全表扫描,扫描行数 9000多行
2.增加唯一索引之后查询
查询时间缩短,然后再看查询计划
查询计划中,扫描行数中只有一行。
上面建立的索引是唯一索引,常规索引中查询计划的type一般为ref
索引列和非索引列一起查询, 索引仍然会有效
单个索引失效的几种情况
1.%username% like 会失效,%username like 会失效, username% like 不会失效(查询计划中的type=range,in,between 都是这个type);
2.非单独的列 例如 length(username) = 9 会失效;
三 创建组合索引
组合索引失效
1.当一个列上的索引失效时,索引均失效
2.当索引第一列不在条件中时,则索引失效
四 关联查询总结
1.如果表A数据多,表B 数据少,关联字段没有作索引
则 先查询表A,再查询表B,时间较快。即 select from A left join B on
2.如果表A上的关联字段有索引,则应该先查表B,索引起作用
即select from B left join A on