mysql 性能优化的例子
04 March 2018

1

来源:sql 如何优化加快查询速度?

mysql> select * from b where substr(mobile,0,3) in (133,153,177,180,181,189,199);

存在的问题:substr 不能走索引

  1. 利用索引的左前缀原则,直接 where mobile like "133%" or mobile like "153" or xxx;
  2. 加上虚拟列,并建立索引

还是存在的问题:手机号 3 位数开头的太普遍了

解决:

  1. mobile 存成 int 类型 mobile > 13300000000 and mobile <13400000000
  2. 加个 mobile_type 字段,对 133,153,177,180,181,189,199 这些设置一个值 select * from b where mobile_type=xxx;