登陆

MySQL字符串加索引

admin 2019-05-18 362人围观 ,发现0个评论

咱们在创立MySQL的字符串索引时,用的最多的便是对一切字符创立索引。可是往往咱们疏忽的是,字符串能够创立左前缀的索引,这样更短的字符索引能够削减索引的保护本钱,下面具体介绍一下。

Demo

比方咱们经过邮箱去检索用户的信息,就或许会履行如下的SQLMySQL字符串加索引 查MySQL字符串加索引询。

mysql>select a, b from user where email = MySQL字符串加索引'xxx@qq.com';

当程序代码中呈现上述的查询时,往往咱们会对MySQL字符串加索引 email蒋娉婷老公 字段创立索引,而且创立索引的句子一般如下所示:

mysql> alter table user add index idx_email(email);

上面的方法是咱们最常见的做法,那么咱们是否运用过如下方法呢?

mysql> alter table user add index idx_email(email(6));

详解

关于上述Demo 中不同的创立索引的方法,下面图解阐明一下:

从上面的图解能够看出,运用 email(6) 能够削减不少的索引开支。那么下面咱们剖析一下各自的优缺点。

  • 回表的次数:运用 email 的索引能够精准的定位到复合条件的记载ID,然后回表去获取数据;可是 email(6) 则是首要获取到或许契合条件的记载ID 然后回表去判别,此刻假如前缀的区分度不大,则或许形成屡次的回表操作,反而降低了功能。
  • 掩盖索引:运用 email 的索引或许会运用到掩盖索引,也便是或许不用回表MySQL字符串加索引就能够回来成果了。比方履行 select id, email from user where email = 'xxx',此刻就不需求回表操作了;而关于 email(6) 则是必定需求回表的。

总结以上,创立索引则是需求考虑索引长度,一起也需求统筹索引的区分度。


参阅:《极客时刻:MySQL实战》、《高功能MySQL》

最近发表
  • vivo S1 Pro行将登陆泰国 菱形四摄/骁龙665价格惊人?
  • 章鱼娱乐官网版下载-神马电力11月18日快速反弹
  • 请关注微信公众号
    微信二维码
    不容错过
    Powered By Z-BlogPHP