分析及优化
使用explain命令分析执行计划,第一个sql的索引使用已经OK,where语句全部命中了索引,且查询字段是完全覆盖了索引的....分析第二个语句,使用了索引,但是仅使用了联合索引的第一个,因为不半部分是个表达式,无法使用索引.
第三个语句,虽然存在两个对应字段的独立索引,但是根据执行计划显示,mysql没有使用第二个索引....所以我们优化的目标就是在不影响第一个语句的情况下,让第二个和第三个语句尽可能的命中索引....到此我们可以完成第一阶段的优化,将上面分析的两个联合索引建如就OK.
但是索引也是有代价的,我们的city存了三份了,这台冗余了想办法搞一下....所以我们可以将索引再优化成city,sex,last_active_time,birth,name.(name 是为了让第一条语句命中索引以完成覆盖索引).