怎么给字符串加索引

怎么给字符串加索引

比如说,要给邮箱这样的字段加索引,这样长字符串加索引会有什么样的问题?

前缀索引,如果长度长,会浪费大量的空间,同时增加额外的查询成本。

create table SUser(
ID bigint unsigned primary key, 
email varchar (64)
...
)Engine=innodb;

如果使用邮箱登录,这样会出现这样的语句:

select f1 ,f2 from Suser Where emial='xxx';

如果 email 不建索引,那么就只能全表扫描,如果 email 这个字段是哪个没有索引,那么这个语句只能做全表扫描。

MySQL 支持前缀索引,可以定义字符串的一部分作为索引,创建索引的语句不指定前缀长度,那么索引就会包含整个字符串。

mysql> alter table SUser add index index1(email);
mysql> alter table SUser add index index2(email(6));

第一个语句创建的 index1 索引里面,包含了每个记录的整个字符串。

wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 19.89元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值