首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >索引VARCHAR列?

索引VARCHAR列?
EN

Database Administration用户
提问于 2019-03-04 09:24:36
回答 1查看 852关注 0票数 0

我是否应该将INDEX添加到VARCHAR列中?我需要选择带有字符串的行,而不是ID,这会加快我的查询速度吗?

示例:

代码语言:javascript
复制
SELECT * FROM `cities` WHERE `slug` = 'new-york';
EN

回答 1

Database Administration用户

发布于 2019-03-04 10:48:15

您计划使用以下类型的查询:

代码语言:javascript
复制
SELECT * FROM cities WHERE slug = 'new-york';

所以,是的,您肯定应该在(slug)上有一个索引。

UNIQUE索引还是UNIQUE约束?

这取决于是否允许表中的两行具有相同的“段塞”。我认为这不太可能是一个要求,因为“鼻涕虫”通常是短期内唯一确定一个东西(用户,城市,国家,网页等)。

所以,是的,指数应该是UNIQUE。MySQL在UNIQUE INDEXUNIQUE CONSTRAINT之间没有区别。我更喜欢使用UNIQUE约束语法(它添加了一个UNIQUE索引):

代码语言:javascript
复制
ALTER TABLE cities 
    ADD CONSTRAINT cities_slug_uq     -- constraint name
        UNIQUE cities_sluq_uqx        -- index name
        (slug) ;
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/231214

复制
相关文章

相似问题

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