InnoDB 存储引擎 ·遵循 ACID,支持 commit,rollback 和故障恢复,是事务安全的 ·行级锁定,Oracle-style 读一致性改善了多用户并发操作性能 ·支持 FOREIGN KEY 参照完整性 ·轻松地与其他存储引擎表组合,例如与 MEMORY 表的 JOIN InnoDB 在内存中维持着自己的缓冲区,用来缓存数据和索引
InnoDB 的数据和索引存放在表空间中,表空间可以是共享的,也可以是独享的
独享表空间 开启独享表空间模式之后 InnoDB 以 table_name
idb 命名在数据库目录之中保存新创建的表,数据和索引都保存在
idb 文件,
frm 仍然会创建用来保存元数据
即使使用独享表空间,共享表空间也会存在,因为需要它存放一些 undo 信息和其他元数据信息
因此不能像 MyISAM 表文件那样在数据库目录间随便移动
idb 文件,因为共享表空间里会保存数据库名,数据库间的移动应使用RENAME TABLE语句:RENAME TABLE db1
tbl_name TO db2
tbl_name;
idb 文件的恢复方法: 1、 ALTER TABLE tbl_name DISCARD TABLESPACE; 丢弃现有表空间文件 2、 复制备份的
idb 文件至正确的目录 3、 ALTER TABLE tbl_name IMPORT TABLESPACE; 使用新的 idb 文件 InnoDB 启动选项和系统变量 Variables Description innodb 控制 InnoDB 的加载
OFF,ON,FORCE innodb_additional_mem_pool_size InnoDB 用于保存数据字典信息和其他内部数据结构的内存区大小,默认 8M
超出时,使用操作系统内存并向 error log 写错误信息 i