V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sniperking1234
V2EX  ›  问与答

mysql 中普通索引和唯一索引可以设置在同一列吗

  •  
  •   sniperking1234 · 2020-05-14 09:42:03 +08:00 · 1238 次点击
    这是一个创建于 1645 天前的主题,其中的信息可能已经有所发展或是发生改变。

    image.png 比如上面的例子,namespace 这一列会经常当作条件被查询,所以设置了普通的 btree 索引。

    namespace 和 name 因为业务上的逻辑,组合起来是唯一的,所以设置了组合的唯一索引。

    这样设置的话会有什么不好的影响吗?

    3 条回复    2020-05-14 10:43:54 +08:00
    DoubleShut
        1
    DoubleShut  
       2020-05-14 09:46:06 +08:00   ❤️ 2
    感觉没必要,根据组合索引的最左前缀原则,单查 namespace 也会使用索引 uni 。
    dddd1919
        2
    dddd1919  
       2020-05-14 09:51:25 +08:00   ❤️ 1
    冗余,没必要,直接设置一个联合索引就可以了,两种业务查询都可以命中
    sniperking1234
        3
    sniperking1234  
    OP
       2020-05-14 10:43:54 +08:00
    @DoubleShut
    @dddd1919
    多谢解答
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2725 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:43 · PVG 23:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.