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

MySQL Unique Index on Varchar Field - Pros & Cons?

我有一个带有 MySQL table 的 Django 应用程序,除了根据 table 的主键进行查询外,我还对业务的 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. 是的,对特定 slug 名称的查找查询将在大量数据上显着增加。

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

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

  4. 不确定...我敢打赌 google 可以告诉您每一个的优缺点,您可以将其应用到您的 situation/usage

  5. 是的,参见#1。