当前位置:Gxlcms > 数据库问题 > mysql存储引擎

mysql存储引擎

时间:2021-07-01 10:21:17 帮助过:3人阅读

mysql存储引擎

那么什么是存储引擎呢?
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。

mysql命令查看所有引擎

show engines;

技术图片

这么多种引擎如何使用,其实工作中最常用到的就两种,myisam和innodb,其他的各有使用场景,但不经常使用。

1,Myisam引擎。

Myisam的特点是读取速度快,在电脑中一张表用三个文件来存储,

.frm表的定义

.MYD表的数据

.MYI表的索引

以文件的形式在电脑上存储,共享io读取速度快,但更新速度慢,适合少更新,经常读取的数据类型。

2、innodb

innodb则能更好的支持读写,特点是支持外键、行锁、非锁读取(读取的时候不会锁)、高性能的内存缓存、支持事务。使用mmvc来进行多版本并发控制,有更好的并发支持。

在电脑上innodb的存储形式,

.frm表的定义

.idb表的索引

ibdata1此文件存的是所有innodb的数据,自动递增。

另外还有两个ib_logfile0和ib_logfile1存储数据的日志。

 innodb的工作方式:将数据按页(每页16k)读取到内存缓存池(InnoDBbuffer pool),然后通过最近最少使用算法,保留缓存数据,最后通过一定的频率将脏页更新到数据文件。

脏页(InnoDB采用Write Ahead Log策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页)

mysql存储引擎

标签:关系   如何   head   控制   nes   bsp   oracl   自动   建立   

人气教程排行