PS:内容来自——《Mysql5.7从入门到精通》
内容是对MSSQL数据库存储引擎的概念介绍以及常用的引擎特性介绍。
简介
- 基础
- 数据库存储引擎是数据库低层
软件组件
,数据库管理系统(DBMS)使用数据引擎
进行创建,查询,更新和删除数据操作。 - 不同的数据的数据引擎提供不同的
存储机制
,索引技巧
,锁定水平
等功能。
- 数据库存储引擎是数据库低层
- 存储引擎简介
- MYSQL提供的存储引擎,分为处理
事务安全表的引擎
和处理事务非安全表
的引擎。 - 可以根据具体的需求对
每一个表
使用不同的存储引擎
。 - 可以通过命令
SHOW ENGINES
查询支持的引擎
- MYSQL提供的存储引擎,分为处理
分类介绍
- InnoDB
- InnoDB是事务型数据库的首选,支持
安全事务表
(ACID),支持行级锁
和外键
。Mysql5.5.5之后,InnoDB是默认的数据库引擎。 - 主要特性
- InnoDB给Mysql提供了具有
提交,回滚和崩溃恢复能力
的事务安全
存储引擎。 - SQL查询中,可以自由的将InnoDB类型的表与其他Mysql的表的类型混合。
- InnoDB存储引擎完全与Mysql服务器整合,InnoDB为在
主内存中缓存数据和索引
而维持他自己的缓冲池
。 - InnoDB将它的表和索引存储在一个
逻辑表空间
中,表空间可以包含数个文件。 - InnoDB支持外键完整性约束。存储表中的数据的时候,每张表的存储按
主键顺序存放
,如果没有显示定义主键,InnoDB会为每一行自动生成一个6B的ROWID作为主键。 - InnoDB被用在众多需要高性能的大型数据库站点上。
- InnoDB给Mysql提供了具有
- InnoDB是事务型数据库的首选,支持
- MyISAM
- 基于ISAM,并对其进行扩展。具备
较高的插入,查询速度
,但不支持事务
。 - 主要特性
- 大文件(达63位文件长度)在支持大文件的文件系统和操作系统上被支持。
- 当把删除,更新及插入操作混合使用的时候,动态尺寸的行产生更少的碎片。
- 每个MyISAM表最大索引数是64,可以通过重新编译来改变。
- 最大键长度为1000B,也可以通过编译来改变。
BLOB和TEXT列可以被索引
。- NULL值允许在索引的列中。
- 每个表一个AUTO_INCREMENT列的内部处理。MyISAM为INSERT和UPDATE操作自动更新这一列。
- 可以把数据文件和索引文件存放在不同的目录。
每个字符列可以有不同的字符集
。- 有VARCHAR的表,可以固定或动态记录长度。
- VARCHAR和CHAR列最多可达到64KB。
- 基于ISAM,并对其进行扩展。具备
- MEMORY
- 将表中的
数据存储到内存中
,为查询和引用其他表数据提供快速访问。不支持事务
。 - 主要特性
- MEMROY表的每个表可以多达32个索引,每个索引16列,以及500B的最大键长度。
- MEMORY存储引擎执行
HASH和BTREE索引
。 - 可以在一个MEMORY表中有一个非唯一键。
- MEMORY表使用一个固定的记录长度格式。
MEMORY不支持BLOB和TEXT列
。- 支持AUTO_INCREMENT列和对包含NULL值的列索引。
- MEMORY表在所有客户端之间共享。
- 当不需要MEMORY表的内容时,要释放被MEMORY表使用的内存,应该执行DELETE FROM或TRUNCATE TABLE或删除整个表DROP。
- 将表中的
- 存储引擎的比较与选择
- 事务需求,并发控制----->InnoDB
主要用来
查询和插入(少修改
),不要求事务----->MyISAM- 临时存储,数据量不大,无事务要求---->Memory
- 只有INSERT和SELECT,高并发插入,不要求事务(类似数据归档操作)----->Archive
PS:这次只做了搬运工,备忘。