MySQL-unique索引在查询上会有额外优势么?

小组事务管理 小组事务管理 主题:974 回复:1955

MySQL-unique索引在查询上会有额外优势么?

归属感 发布于 2017-04-02 字数 577 浏览 1062 回复 1

如果值能确保唯一,那是用 index 好还是用 unique index 好?(因为不甚了解,总担心 unique index 会有额外的“检查是否unique”的步骤)

测也不太好测,查索引本来就是极快,感觉结果都被其他开销的噪音淹没了

有人能从 B-Tree 对应 index/unique index 的具体实现的角度来讲讲么

如果 unique index 的读写都能比 index 快,那是最好,如果相比之下写慢读快,在大量读的场景也还是可以用的吧


这是朋友之前的一个问题,显然没有得到较好的答案,希望各位发表下自己的看法

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

泛泛之交 2017-10-07 1 楼

从个人的理解和平常了解到的资料来看,unique index和普通的index本身没有多大的差别,unique index会额外添加的唯一性约束。该约束严格的保证索引列的取值唯一性,这在一些数据列上的业务约束实现是很重要的功能,也就是说unique index在update和insert时会去检测索引的唯一性,当然如果能保证index是唯一的话那外表看起来是没有差别的,但在索引各自内部的存储结构上还是有差别的,记得从书上看到过,unique index所占用的空间要比普通的index的物理空间要小,不过在查询效率上来看,它们并没有多大的差别,所以当能保证唯一性的时候采用哪种所引,那就是仁者见仁,智者见智了。