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

mysql 给定条件索引如何建立?

  •  1
     
  •   WeikangMa · 2021-04-21 16:45:31 +08:00 · 706 次点击
    这是一个创建于 1323 天前的主题,其中的信息可能已经有所发展或是发生改变。
    表:id, 名称,注册时间,班级 ID, 年龄,性别,

    查询需求:

    id

    名字

    时间+名字

    班级+年龄

    班级+性别

    求问如何建立索引
    4 条回复    2021-04-22 12:37:41 +08:00
    WeikangMa
        1
    WeikangMa  
    OP
       2021-04-21 16:46:02 +08:00
    个人认为

    名字: 最左原则, 单独加一个

    时间+名字: 时间区分度大, 名字可能是最左原则, 最好加一个时间_名字的联合索引

    年龄, 学生估计年龄前后差不了 5 岁, 性别区分度就更小了。 所以加一个班级的索引,或者班级+年龄的联合索引 都可以吧
    WeikangMa
        2
    WeikangMa  
    OP
       2021-04-21 16:48:08 +08:00
    你们平时会对 mysql 参数进行调优吗? 这特么不都是 dba 的事, 即使知道原理, 谁敢调呀。。。
    结果面试官评价一句: 数据库使用经验比较少。。。
    morty0
        3
    morty0  
       2021-04-21 23:17:34 +08:00
    考虑范围查询需求, 时间+名字, 年龄+班级
    GGGG430
        4
    GGGG430  
       2021-04-22 12:37:41 +08:00 via iPhone
    还是要看实际 sql 使用频率,高频率使用的优先建立,另外你说的这些有点纸上谈兵,最好是找一个 slave 实际去 explain 看看效果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5809 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:44 · PVG 10:44 · LAX 18:44 · JFK 21:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.