深入浅出MySQL-第7章 表类型(存储引擎)的选择
7.1 MySQL存储引擎概述
- MySQL用户可以自定义功能,因为MySQL存储引擎是插件式存储引擎
- 默认引擎(default-table-type):InnoDB
- 查看引擎 show engines
- 表的引擎也是可以修改的
7.2 各种存储引擎的特点
- 现有的几种存储引擎对比:
MyISAM:适用于读操作和插入操作为主,更新删除少,对事务的完整性并发性要求不高
InnoDB:用于事务处理应用程序,更新删除多
MEMORY:对表的大小有限制,用于更新少的小表
MERGE NDB
只有InnoDB支持事务安全 - MyISAM
默认表的存储格式是静态表,如果需要保存到表的内容本来就有空格,那么返回的时候空格也会被去掉
动态表会产生碎片在频繁的更新和删除记录的时候 - InnoDB
具有提交,回滚和奔溃恢复能力的事务安全
支持自动增长列
支持外键约束,可以用show create table或者show table status 查看外键信息
存储方式:
InnoDB存储表和索引有如下两种方式:
使用共享表空间存储,表结构保存在.frm文件中,
或者使用多表空间存储,创建的表结构仍然保存在.frm文件中,每个表的数据和索引单独保存在.ibd中。如果是分区表,则每个分区保存单独的.ibd文件,文件名字是表名+分区名。多表空间的参数,只对新建的表有效。多表空间的数据文件没有大小限制,可以方便的进行单表的备份和恢复操作。 - MEMORY
使用存在于内存中的内容创建表,每个MEMORY表只实际上对应一个磁盘文件,格式为.frm。MEMORY默认使用HASH索引,因为存在内存,服务关闭后,表中的数据会丢失。 - MERGE
是MyISAM表的组合。
深入浅出MySQL-第7章 表类型(存储引擎)的选择
https://nrbackback.github.io/2019/01/22/深入浅出MySQL-第7章 表类型(存储引擎)的选择/