MySQL为什么主键自增


本文摘自PHP中文网,作者(*-*)浩,侵删。

mysql主键自增的原因:1、数据记录本身被存于主索引的叶子节点上;2、mysql会根据其主键将其插入适当的节点和位置;3、表使用自增主键,在每次插入新的记录时,记录会顺序添加到当前索引节点的后续位置。

MySQL之所以要使用自增主键,是因为InnoDB表与它使用时十分方便,效率明显提高。

推荐课程:MySQL教程。

InnoDB引擎表的特点

1、InnoDB引擎表是基于B+树的索引组织表(IOT)

关于B+树

11.jpg

B+ 树的特点:

所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的;

不可能在非叶子结点命中;

非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层;

2、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。

阅读剩余部分

相关阅读 >>

关于mysql的fulltext实现全文检索需要注意的事项

20分钟mysql基础入门

mysql基础之常见函数

如何通过php实现mysql数据库连接、查询、记录集等操作

彻底解决mysql使用中文乱码的方法

mysql面试的知识总结(附示例)

如何向mysql数据库或者oracle或导入表格文件

mysql中关联变量条件修改、查询以及数据显示成一行的介绍

mysql数据库用户权限管理

mysql怎么修改添加主键

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...