到底什么是mysql的存储引擎呢?
表是在存储数据的同时,还要组织数据的存储结构,而这些数据的组织结构就是由存储引擎决定的。
即存储引擎的作用就是规定了数据存储时的存储结构,每一种存储引擎针对的情况不一样,下面主要介绍InnoDB这种引擎。

使用的InnoDB存储引擎存储 将表film建好以后,去到mysql的安装目录data里面,并进入到那张表所在的数据库里面,看到了以film为名,idb为后缀的文件,这个文件主要用来储存数据表的数据信息和索引信息

InnoDB支持聚集索引,那什么是聚集索引呢?
聚集索引:指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。他当然也是使用的B+Tree数据结构。叶子节点存储了完整的数据记录。且一个表只包含唯一的一个聚集索引。
他又是选择了谁作为聚集索引呢?
mysql一般会选择主键作为聚集索引。
如果一个主键被定义了,那么这个主键就是作为聚集索引
如果没有主键被定义,那么该表的第一个唯一非空索引被作为聚集索引
如果没有主键也没有合适的唯一索引,那么innodb内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键是一个6个字节的列,改列的值会随着数据的插入自增。所以现在创建表的时候必须指定主键,就是节约数据库自己去创建一个隐藏主键的时间。而且因为是采用的btree数据结构,叶节点都是有序的,采用自增主键的话,就会节约为了平衡树结构所采用的方法的时间。


被折叠的 条评论
为什么被折叠?



