深入浅出MySQL-第7章 表类型(存储引擎)的选择

7.1 MySQL存储引擎概述

  1. MySQL用户可以自定义功能,因为MySQL存储引擎是插件式存储引擎
  2. 默认引擎(default-table-type):InnoDB
  3. 查看引擎 show engines
  4. 表的引擎也是可以修改的

7.2 各种存储引擎的特点

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

深入浅出MySQL-第7章 表类型(存储引擎)的选择
https://nrbackback.github.io/2019/01/22/深入浅出MySQL-第7章 表类型(存储引擎)的选择/
作者
John Doe
发布于
2019年1月22日
许可协议