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

2021-04-21 16:45:31 +08:00
 WeikangMa
表:id, 名称,注册时间,班级 ID, 年龄,性别,

查询需求:

id

名字

时间+名字

班级+年龄

班级+性别

求问如何建立索引
639 次点击
所在节点    问与答
4 条回复
WeikangMa
2021-04-21 16:46:02 +08:00
个人认为

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

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

年龄, 学生估计年龄前后差不了 5 岁, 性别区分度就更小了。 所以加一个班级的索引,或者班级+年龄的联合索引 都可以吧
WeikangMa
2021-04-21 16:48:08 +08:00
你们平时会对 mysql 参数进行调优吗? 这特么不都是 dba 的事, 即使知道原理, 谁敢调呀。。。
结果面试官评价一句: 数据库使用经验比较少。。。
morty0
2021-04-21 23:17:34 +08:00
考虑范围查询需求, 时间+名字, 年龄+班级
GGGG430
2021-04-22 12:37:41 +08:00
还是要看实际 sql 使用频率,高频率使用的优先建立,另外你说的这些有点纸上谈兵,最好是找一个 slave 实际去 explain 看看效果

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/772226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX