Varchar 字段上的 MySQL 唯一索引 - 优点和缺点?
Posted
技术标签:
【中文标题】Varchar 字段上的 MySQL 唯一索引 - 优点和缺点?【英文标题】:MySQL Unique Index on Varchar Field - Pros & Cons? 【发布时间】:2015-01-12 16:12:39 【问题描述】:我有一个带有 mysql 表的 Django 应用程序,除了基于表的主键进行查询外,我还对业务名称的 slugname 进行了大量查询,因为 slugname 是 url 的一部分。 www.mywebsite.com/slug-name/
。 slugname 是唯一值。
我确实有业务 ID
整数作为 PRIMARY
键和 PRIMARY
索引。
MySQL 表:
id - int, pk, primary index
name - varchar(50)
slugname - varchar(50) (is unique value)
...
-
索引 slugname 有什么主要好处吗?
由于 slugname 是唯一的,
UNIQUE
索引是否会优于 fulltext
索引?
索引 varchar 字段有什么缺点吗?
与UNIQUE
索引相比,fulltext
会给我带来任何好处吗?
Django 查询会从索引中受益吗?
【问题讨论】:
【参考方案1】:我无法回答您的所有问题,但是:
是的,针对特定 slug 名称的查找查询将在大量数据上显着增加。
您应该使用 UNIQUE 索引,这样您就不必进行查找来测试唯一性,只需让数据库抛出错误并在 django 中正确处理即可
在今天的系统中,我会说不,尤其是只有 50 个字符的系统。
不确定...我敢打赌,谷歌可以告诉您每种方法的优缺点,您可以将其应用于您的情况/使用情况
是的,参见 #1。
【讨论】:
感谢您的回复!我想我是在正确的轨道上,需要一些确认:)以上是关于Varchar 字段上的 MySQL 唯一索引 - 优点和缺点?的主要内容,如果未能解决你的问题,请参考以下文章
MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有啥区别?各适用于啥场合?