我是否应该将INDEX添加到VARCHAR列中?我需要选择带有字符串的行,而不是ID,这会加快我的查询速度吗?
示例:
SELECT * FROM `cities` WHERE `slug` = 'new-york';发布于 2019-03-04 10:48:15
您计划使用以下类型的查询:
SELECT * FROM cities WHERE slug = 'new-york';所以,是的,您肯定应该在(slug)上有一个索引。
是UNIQUE索引还是UNIQUE约束?
这取决于是否允许表中的两行具有相同的“段塞”。我认为这不太可能是一个要求,因为“鼻涕虫”通常是短期内唯一确定一个东西(用户,城市,国家,网页等)。
所以,是的,指数应该是UNIQUE。MySQL在UNIQUE INDEX和UNIQUE CONSTRAINT之间没有区别。我更喜欢使用UNIQUE约束语法(它添加了一个UNIQUE索引):
ALTER TABLE cities
ADD CONSTRAINT cities_slug_uq -- constraint name
UNIQUE cities_sluq_uqx -- index name
(slug) ;https://dba.stackexchange.com/questions/231214
复制相似问题