我们现在有一个业务系统,存储的是市民的身份信息,每个市民都有一个唯一的身份证号,并且我们在业务代码中已经保证了不会插入重复的身份证号。现在我们有一条语句经常被执行:"select * from t where id_card='xxxxxx...'"。这种情况怎么给表建立合适的索引呢?
选择索引
sql语句的普通索引查询是通过存储引擎读取数据的,而InnoDB读取数据是按数据页,将符合的数据以页为单位读取到内存中。普通索引的查询是多了一次指针查询和计算,这个指的是当读到符合条件的数据之后,还需要读一个不符合条件的数据。
而唯一索引的查询是通过索引读取到符合的数据,就会停止查询,然后把数据按照页单位返回到内存中。
更新过程
当我们使用联合索引查询时,我们的查询条件也是联合索引的字段,mysql会使用索引下推的方式对sql语句进行优化,来减少回表的次数。
文章转载自Lord Lean Notes,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3263次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
904次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
532次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
456次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
382次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
349次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
302次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
295次阅读
2025-05-06 14:40:00
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
290次阅读
2025-04-28 11:01:25
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
286次阅读
2025-04-30 12:17:54