代码之家  ›  专栏  ›  技术社区  ›  Armen Michaeli

MySQL:“unique”列字段是否意味着索引,如果是,为什么?

  •  6
  • Armen Michaeli  · 技术社区  · 14 年前

    据我所知,MySQL会自动索引指定为唯一的表列。是这样吗?

    只是好奇!

    1 回复  |  直到 5 年前
        1
  •  11
  •   Matt    14 年前

    据我所知,MySQL会自动索引指定为唯一的表列。是这样吗?

    对。不过,这不一定是“自动的”,而是隐含的。 UNIQUE 类型 当然,这个列是被索引的。

    MySQL有没有什么理由在没有索引的情况下不能有唯一的列?

    因为MySQL在每个数据库上做一个完整的表扫描是很愚蠢的 INSERT / UPDATE 坚持独特的约束。

    编辑 :

    是的,每一个值插入/更新都是O(行数)操作,没有一个,但是就像我说的那样,程序员不应该对这个决定征税吗?

    为什么程序员要在数据存储层之外手动执行基本的数据完整性?我知道你要说什么,但事实是索引不可能 伤害 任何事情(它只是需要多一点空间)-所以真的没有一个要考虑的决定。