V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
daqin
V2EX  ›  MySQL

索引重复了?

  •  
  •   daqin · 2021-04-24 14:20:05 +08:00 · 3215 次点击
    这是一个创建于 1305 天前的主题,其中的信息可能已经有所发展或是发生改变。

    image 各位大佬,由于索引占用磁盘太大,准备清理多余索引,大家帮忙看看。第一个和最后一个索引是不是重复了。可以删除第一个索引?

    第 1 条附言  ·  2021-04-24 23:08:21 +08:00
    mysql 数据库
    12 条回复    2021-04-25 19:22:35 +08:00
    mengyx
        1
    mengyx  
       2021-04-24 14:32:04 +08:00
    不一样吧 一个是单列索引 一个是联合索引
    lewis89
        2
    lewis89  
       2021-04-24 14:46:18 +08:00 via iPhone
    重复了,联合索引能够满足第一个索引的所有功能
    Rache1
        3
    Rache1  
       2021-04-24 15:35:30 +08:00
    第一个冗余,可以删掉
    zlowly
        4
    zlowly  
       2021-04-24 15:40:51 +08:00   ❤️ 1
    虽然最后一个联合索引可以提供第一个索引的功能,但如果从含义上猜测,id 很可能是唯一索引,这种情况根本就无需 country,又或者这个表里相同 id 的记录本来就不会太多,那联合 country 提升的性能也不明显,所以你还是得看数据具体情况和使用场景分析,在这两个里面选一个留下。
    zhuawadao
        5
    zhuawadao  
       2021-04-24 17:01:41 +08:00
    不是,我寻思你也没说是啥数据库啊
    nuistzhou
        6
    nuistzhou  
       2021-04-24 17:15:00 +08:00 via iPhone
    @zhuawadao mysql 节点
    Soar360
        7
    Soar360  
       2021-04-24 18:24:49 +08:00
    第一个重复了,可以删掉。
    wolfie
        8
    wolfie  
       2021-04-24 18:54:07 +08:00
    沟通少的小团队会出现这种情况,各玩各的。
    wd
        9
    wd  
       2021-04-25 07:50:54 +08:00 via iPhone
    @zlowly 思路不错,不过那个看着是 store 的 id,估计是另外一个表的主键,这就看具体一个 store country 有多少了,少的话确实没必要
    wakzz
        10
    wakzz  
       2021-04-25 09:48:02 +08:00   ❤️ 1
    楼上的不完全正确。如果当前场景下,没有 store_id 与主键 id 的覆盖索引查询场景,那么第一个索引删掉没问题。

    但如果存在 store_id 与主键 id 的覆盖索引查询场景,或者例如 `where store_id order by 主键 id` 之类的查询,那么第一个索引还是不能删掉的。


    @lewis89
    @faqqcn
    @Soar360
    beitayongguo
        11
    beitayongguo  
       2021-04-25 09:52:37 +08:00
    第一个索引看是否用到覆盖索引吧 还是得看场景和具体数据
    lladsppku
        12
    lladsppku  
       2021-04-25 19:22:35 +08:00 via iPhone
    第一个和最后一个重复了。而且盲猜 coupon count 和 sourceid 这样的索引也没啥区分度。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1760 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:43 · PVG 00:43 · LAX 08:43 · JFK 11:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.