本文介绍: MySQL进阶45讲【11】怎么更好地给字符串字段加索引?
1 前言
现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。
假设,现在维护一个支持邮箱登录的系统,用户表是这么定义的:
由于要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句:
从MySQL进阶45讲【4】索引原理剖析(上)和MySQL进阶45讲【5】索引原理剖析(下)讲解索引的文章中,我们可以知道,如果email这个字段上没有索引,那么这个语句就只能做全表扫描。
同时,MySQL是支持前缀索引的,也就是说,可以定义字符串的一部分作为索引。默认地,如果创建索引的语句不指定前缀长度,那么索引就会包含整个字符串。
比如,这两个在email字段上创建索引的语句:
2 前缀索引对覆盖索引的影响
3 使用其他方式给字符串加索引
3.1 倒序存储
3.2 使用hash字段
3.3 两种方式的异同点
4 小结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。