我们存在邮箱作为用户名的情况,每个人的邮箱都是不一样的,那我们是不是可以在邮箱
上建立索引,但是邮箱这么长,我们怎么去建立索引呢?
MySQL
是支持前缀索引的,也就是说,你可以定义字符串的一部分作为索引。默认地,
如果你创建索引的语句不指定前缀长度,那么索引就会包含整个字符串。
我们是否可以建立一个区分度很高的前缀索引,达到优化和节约空间的目的呢?
使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本。
上面说过覆盖索引了,覆盖索引是不需要回表的,但是前缀索引,即使你的联合索引已经
包涵了相关信息,他还是会回表,因为他不确定你到底是不是一个完整的信息,就算你是
www.aobing@mogu.com
一个完整的邮箱去查询,他还是不知道你是否是完整的,所
以他需要回表去判断一下。
评论