引入
通常在开发中我们需要定义字符串类型的字段,例如用户名或者用户邮箱等。
假设我们在维护一个用户登录系统,用户表的定义:
create table User(
ID bigint unsigned primary key,
email varchar(64)
)engine=Innodb;
如果使用邮箱登录的话,查询语句可能这样写:
select ID from User where email='xxx';
如果email字段没有加索引,那么这个语句只能做全表扫描。
前缀索引
MySQL是支持前缀索引的,也就是说,你可以定义字符串的一部分作为索引。如果不指定前缀索引,那么索引就是整个字符串。
例子:
alter table User add