mysql innodb引擎学习

本文记录了对MySQL中InnoDB引擎的学习内容。MySQL 5.5后默认引擎为InnoDB,它支持事务、行锁和外键,默认索引为B+tree。还简述了B-tree,它是为外部存储设计的平衡多路查找树,MySQL使用的B+tree在其基础上改进,可减少磁盘IO次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近回头看了一下《mysql从入门到放弃》这本书,专门看了看我们经常使用的innodb引擎,现在记录一下学习的内容吧。

有错误请指正。

Mysql5.5后默认引擎为innodb

innodb特性

innodb支持事务,支持行锁,支持外键。是一个专门为大容量存储设计的存储引擎。默认索引b+tree。

关于事务,可以参照:mysql 事务ACID

关于行锁,可以参照: mysql 行锁

B-tree

关于B-tree这里先简述一下,后续有空补上关于b-tree 和b+tree的内容。

B-tree是一种专门为外部存储设备设计平衡多路查找树。磁盘存储是分磁盘块的,每个块存储他的主键还有data,b-tree将数据排序,然后再数据前后分别有指针指向小于, 等于,大于他的数据所在磁盘块。这样在尽量少的IO次数下,通过二分查找,快速定位所需数据。

Mysql使用的b+tree是在b-tree基础上改进的,将所有数据放在同一个叶节点上,减少查找树的高度,更多减少磁盘IO次数。

所以这也就是为什么mysql主键推荐使用自增。因为他的主键(聚集索引)在物理上连续,这样在查找数据是,通过B+tree减少排序带来的性能影响。并且主键较小,也减少了磁盘的占用空间。

关于主键选择自增,UUID还是雪花算法,回来再专门开一个博客写吧。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值