【发布时间】:2012-03-12 16:31:41
【问题描述】:
我的表中有一个UNIQUE 字段,我需要快速搜索它。我需要索引它吗?
对唯一字段和索引字段的搜索在速度或资源使用方面是否有所不同?
【问题讨论】:
标签: mysql indexing field unique
我的表中有一个UNIQUE 字段,我需要快速搜索它。我需要索引它吗?
对唯一字段和索引字段的搜索在速度或资源使用方面是否有所不同?
【问题讨论】:
标签: mysql indexing field unique
不,您不必再次对其编制索引。当您指定UNIQUE KEY 时,该列被索引。所以它与相同类型的其他索引列(例如PRIMARY KEY)在性能上没有差异。
但是如果类型不同,性能差别不大。
【讨论】:
根据定义,每个 UNIQUE 字段都使用 UNIQUE INDEX 进行索引 - 这也恰好是最快的可搜索访问路径。
【讨论】:
如果该字段需要是唯一的,那么它应该是PRIMARY KEY 或UNIQUE INDEX。
至于UNIQUE INDEX 和INDEX 之间的性能,选择时没有区别,因为两者都将使用相同的算法,即散列或b-tree。只是使用UNIQUE 索引,尤其是数字,即INT 索引,它将比包含重复项的索引更快,因为诸如 b-tree 之类的算法能够更有效地到达请求的行
【讨论】: