
普通索引和唯一索引,应该怎么选择?
发布日期:2021-05-07 21:24:30
浏览次数:17
分类:精选文章
本文共 573 字,大约阅读时间需要 1 分钟。
普通索引和唯一索引:选择与性能的权衡
在数据库优化中,选择合适的索引至关重要。普通索引和唯一索引在查询和更新操作中表现不同,了解这些差异有助于优化数据库性能。
查询性能对比
- 普通索引:在查找满足条件的记录时,会继续查找下一个记录,直到找到第一个不满足条件的记录。这可能意味着更多的磁盘读取操作,但由于InnoDB以数据页为单位读取,影响较小。
- 唯一索引:由于定义了唯一性,查找到第一个满足条件的记录后会停止。这使得查询操作稍快。
更新性能对比
- change buffer:用于缓存数据页的变更,减少直接读取磁盘的次数。普通索引可以使用change buffer,而唯一索引不能。
- 应用场景:change buffer在写多读少的业务中效果最佳,例如账单系统。但在写入后立即查询的场景下,可能增加维护代价。
索引选择建议
- 业务正确性优先:如果业务需要唯一性约束,唯一索引是必要选择。
- 归档库优化:对于历史数据,可以将唯一索引改为普通索引以提高归档效率。
change buffer与redo log区别
- change buffer:减少随机读磁盘I/O。
- redo log:节省随机写磁盘I/O。
结论
在不需要唯一性约束的情况下,选择普通索引以优化性能。合理使用change buffer和redo log,根据业务需求选择适合的索引和优化策略。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年03月29日 02时11分29秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
在没实践机会的前提下,如何跨越级别
2019-03-05
从面试官角度告诉大家如何准备项目方面的描述
2019-03-05
架构师入门:搭建基本的Eureka架构(从项目里抽取)
2019-03-05
Java核心技术及面试指南 流程控制方面的面试题答案
2019-03-05
MongoDB 快速扫盲贴
2019-03-05
修复搜狗、360等浏览器不识别SameSite=None 引起的单点登录故障
2019-03-05
明天要早起,今天不博了。
2019-03-05
2017/08/21 工作日志
2019-03-05
EXTJS4.2——10.Tab+Iframe
2019-03-05
EXTJS4.2——3.1 添加文本框
2019-03-05
WEB基础——AJAX
2019-03-05
one + two = 3
2019-03-05
Kali Day01 --- arpspoof命令进行断网攻击(ARP欺骗)
2019-03-05
echart关系图平分节点删除时自动平衡问题
2019-03-05
【Coursera】Internet History 读书笔记
2019-03-05
《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
2019-03-05
Decision tree(决策树)算法初探
2019-03-05
《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结
2019-03-05