MySQL字符串索引更合理的创建规则讨论字符串索引更合理的创建规则讨论
主要给大家介绍了关于MySQL字符串索引更合理的创建规则,文中通过示例代码介绍的非常详细,对大家学习
或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
前言前言
针对使用MySQL的索引,我们之前介绍过索引的最左前缀规则,索引覆盖,唯一索引和普通索引的使用以及优化器选择索引
等概念,今天我们讨论下如何更合理的给字符串创建索引。
如何更好的创建字符串索引如何更好的创建字符串索引
我们知道,MySQL中,数据和索引都是在一颗 B+树 上,我们建立索引的时候,这棵树所占用的空间越小,检索速度就会越
快,而varchar格式的字符串有些会很长,那么在效率为上的今天,我们如何更加合理的建立字符串的索引呢?
假如说我们一张表中存在 email 字段,现在要给 email 字段创建索引,email 字段值的格式为:zhangsan@qq.com。
有有2种建立索引的方式:种建立索引的方式:
1、直接给 email 字段建立索引:alter table t add index index1(email);
索引树结构为:
2、建立 email 的前缀索引:alter table t add index index2(email(6));
索引数据结构为: