首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Varchar上创建一个MySQL索引总是生成2个索引?

在Varchar上创建一个MySQL索引总是生成2个索引?
EN

Stack Overflow用户
提问于 2011-05-25 02:59:03
回答 1查看 10K关注 0票数 9

我的表中有一个email列,它是一个VARCHAR(255)。大多数电子邮件的长度只有40-50个字符,其余的字符在那里只是为了应对罕见的情况。因此,我只想为电子邮件列的前50个字符建立索引。

我试着用下面的查询来实现:

代码语言:javascript
复制
ALTER TABLE  `users` ADD INDEX (email(50) )

但是,这会创建两个索引,一个名为email,另一个名为email_2。第一个索引没有长度限制,第二个索引有50个字符限制。

为什么会这样呢?有什么变通办法吗?还是我别无选择,只能为整个列建立索引?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-25 03:04:02

为什么只对前50个字符进行索引呢?MySQL将足够智能,只使用索引中的空间来存储实际数据。也就是说,它不会为每个条目分配255个字符的空间。因此,没有理由不简单地对整个列进行索引。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6115440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档