数据库存储引擎

存储引擎是存储数据,建立索引,更新查询数据等等技术的实现方式。存储引擎是针对表的,在创建表的时候可以指定所要使用的存储引擎。

这里主要介绍mysql中支持的其中三种存储引擎:

InnoDB(mysql默认的存储引擎):支持事务;支持外键;支持行锁表锁;.frm文件存放表结构,.idb文件存放数据和索引。

MyISAM:不支持事务;不支持外键;只支持表锁;.frm文件存放表结构,.MYD存放数据,.MYI存放索引。

MEMORY:.frm文件存放表结构,数据直接存在内存中(服务关闭后数据就会丢失),默认使用哈希索引。

 

聚簇索引(也称聚集索引)和非聚簇索引(也称辅助索引、二级索引)

聚簇索引和非聚簇索引都是使用B-Tree结构。聚簇索引中,叶子节点中包含了对应的整个数据行的信息(索引和数据是在一起的);非聚簇索引中,叶子节点中并未包含对应的数据(索引和数据不是在一起的)。

 

InnoDB:

InnoDB使用聚簇索引的方式储存表数据。InnoDB使用表的主键作为索引(若表未提供主键,则隐藏的_rowid字段会被作为主键),构建出B-Tree,并将表中所有数据行的信息都存储在相应的叶子节点中。

在InnoDB中,我们自己建立的索引都为非聚簇索引,索引的叶子节点中仅包含了主键信息。我们需要去聚簇索引中找到该主键的叶子节点,才能获取到所有的数据。

(InnoDB的索引和数据存在同个文件中。其中,主键索引为聚簇索引,其包含了所有的数据;其余索引为非聚簇索引)

MyISAM:

MyISAM的索引文件和数据文件是分离的。其索引文件中存储的索引都为非聚簇索引,叶子节点中存储的是指向数据文件的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值