Database engine数据库存储引擎, since 2022-04-21

(2022.04.21 Thur)
数据库中的数据通过不同的技术存储在文件或内存中,不同技术的区别在于存储机制、索引方式、锁定水平以及其他方面的功能。数据库存储引擎是DBMS的底层组件,用于数据的创建读取更新删除(CRUD)。多数的DBMS提供了访问引擎的API,而免于用户直接访问DBMS的UI。

不同DBMS对引擎的支持不同。以MySQL为例,MySQL支持InnoDB,MyISAM,ARCHIVE,MEMORY等。

InnoDB

InnoDB的设计目标是处理大容量数据时最大化性能,CPU利用率是基于磁盘的关系数据库引擎中最高;是一套置于MySQL后台的完整数据库系统,有自己的缓冲池,用于缓冲数据和索引。数据和索引存在表空间里,可包含多个文件。作为对比MyISAM的表被放在单独的文件中。InnoDB表的大小只受限于操作系统文件大小,一般2GB。

事务transaction:访问并可能操作各种[数据项]的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。
ACID:原子性Atomicity,或称不可分割性、一致性Consistency、隔离性Isolation,又称独立性、持久性Durability。ACID是数据库事务正确执行的四个基本要素。

特点:

  • 提供事务处理,支持ACID
  • 支持行锁
  • 提供一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量

MyISAM

特点:

  • 查询、插入速度快
  • 不支持事务,每次查询都是原子的
  • 支持表级锁,即每次操作都对整个表加锁
  • 单表最大支持条记录
  • 单表最大建立64条索引
  • 三个文件:索引文件、表结构文件、数据文件
  • 采用非聚集索引(Non-clustered),索引文件的数据域存储指向数据文件的指针

你可能感兴趣的:(Database engine数据库存储引擎, since 2022-04-21)