MySql的Innodb存储引擎

2021年3月6日 32点热度 0条评论 来源: 剑海风云

存储结构

mysql的Innodb存储引擎是mysql的默认存储引擎,也是在实际业务场景下应用最多的一种存储引擎,其次为Memory和MyISAM。

innodb存储文件主要分两种:定义文件(.frm);数据文件(.idb)。

数据文件的最小存储单位为页。表空间的存储结构由段、区/簇、页组成。其中页的默认大小为16KB,64个页组成一个区(1024KB=1MB),创建一个段时默认就会创建一个区。在innodb存储结构中每个页被划分为若干个组,每个组的最后一个记录的地址偏移量作为一个槽,此值存放在Page_Directory中,此作为主键用于查询数据记录(通过二分法确定槽),通过next_record遍历对应槽所在组的每个记录。每个数据页的文件头部分都包含上一个数据页和下一个数据页的编号信息,所有所有页组成了一个双向链表。

innodb采用的是B+Tree(红黑树)作为其索引结构,创建表时已经构建。

事务的特性

原子性(Atomic,A)

操作执行过程中不能受到干扰,要么全部成功执行,要么都不执行。

一致性(Consistency,C)

操作的输入和输出方在线程执行完成后是平衡的。

隔离性(Isolation,I)

同一个时间片只允许一个线程操作共享数据,线程是安全的。避免产生脏读、不可重复读,幻读等。

  • 串行化(Serializable)。可避免脏读、不可重复读、幻读。
  • 可重复读(Repeatable Read)。可避免脏读,不可重复读。
  • 已提交读(Read Committed)。可避免脏读。
  • 未提交读(Read Uncommitted).

持久性(Durability,D)

线程执行完成后,操作的变更保存至磁盘。

    原文作者:剑海风云
    原文地址: https://blog.csdn.net/nanxiaotao/article/details/114175955
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。