繁体   English   中英

MySQL在Varchar字段上的唯一索引-优点和缺点?

[英]MySQL Unique Index on Varchar Field - Pros & Cons?

我有一个带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)
...
  1. 索引slugname会带来什么主要好处吗?
  2. 由于slugname是唯一的,相对于fulltext索引, UNIQUE索引会被首选吗?
  3. 索引varchar字段有什么弊端?
  4. fulltext会给我带来优于UNIQUE索引的任何好处?
  5. Django查询会从索引中受益吗?

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

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

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

  3. 在当今的系统中,我会拒绝,尤其是只有50个字符的系统。

  4. 不确定...我敢打赌Google可以告诉您每个优点和缺点,您可以将其应用于您的情况/用法

  5. 是的,请参阅#1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM