关于Varchar领域的MySQL唯一索引 - 优点&缺点?

时间:2015-01-12 16:12:40

标签: python mysql django indexing

我有一个带MySQL表的Django应用程序,除了基于表的主键查询外,我还对商业名称的slugname进行了大量查询,因为slugname是url的一部分。 www.mywebsite.com/slug-name/。 slugname是独特的价值。

我的商家ID整数为PRIMARY密钥和PRIMARY索引。

MySQL TABLE:

id - int, pk, primary index
name - varchar(50)
slugname - varchar(50) (is unique value)
...
  1. 对slugname进行索引会有什么重大好处吗?
  2. 由于slugname是唯一的,UNIQUE索引会优先于fulltext索引吗?
  3. 索引varchar字段的任何缺点?
  4. fulltext会给我带来超过UNIQUE索引的任何好处吗?
  5. Django查询会从索引中受益吗?

1 个答案:

答案 0 :(得分:2)

我无法回答你的所有问题,但是:

  1. 是的,对大量数据集的查询查询将大大增加。

  2. 您应该使用UNIQUE索引,这样您就不必进行查找以测试唯一,只需让数据库抛出错误并在django中正确处理

  3. 在今天的系统中,我会说不,特别是只有50个字符。

  4. 不确定...我打赌谷歌可以告诉你每个人的专业和缺点,你可以将它应用到你的情况/用途

  5. 是的,请参阅#1。