暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
InnoDB的逻辑存储结构简介.pdf
169
5页
4次
2024-05-07
免费下载
InnoDB 的逻辑存储结构简介
索引组织表
InnoDB
逻辑存储结构
表空间
表就是关于特定实体的数据集合,是关系型数据库的核
索引组织表
InnoDB
存储引擎中,表中的数据都是根据主键顺序组织存放的,这种存储方式的表称为
索引组织表
所以在
InnoDB
存储的擎表中,都必须有个主键
primary key
),如在创建表时没有
示地定义主键,则
InnoDB
存储引擎会按照下面的方式选择或者创建主键
首先判断表中是否有非空的唯一索引,
unique key not null
如果有,那么该列就会变为主
(rowid)
如果有多个非空的唯一索引则会选择建表时第一个定义的非空唯一索引作为主键
rowid
如果不符合上述条件,
InnoDB
存储引擎将自动创建一个
6
字节大小的指针(
rowid
举个栗子
CREATE TABLE z(
a INT NOT NULL,
b INT NULL,
c INT NOT NULL,
d INT NOT NULL,
UNIQUE KEY(b),
UNIQUE KEY(c),
UNIQUE KEY(d)
)ENGINE=INNODB,CHARSET=utf8;
从建表上看,可以看到
b
c
d
列都有唯一索引,
b
可以为
NUll
故不可以充当主键
第一个非空唯一索引是
c
列,所以
c
将会充当主键
//
插入几条数据
INSERT INTO z SELECT 1,2,3,4;
INSERT INTO z SELECT 1,3,4,5;
INSERT INTO z SELECT 1,4,5,6;
INSERT INTO z SELECT 1,5,6,7;
//
查询情况,
_rowid
可以判断主键是哪一列
SELECT a,b,c,d,_rowid FROM z;
结果如下所示
可以看到
**_rowid**
c
列一模一样,所以可以确定
c
列成为了主键
但是
**_rowid**
只可以看单个列作为主键的情况,如果使用多个列作为主键是查询不了的
of 5
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜