首页 > 代码库 > 数据库存储引擎
数据库存储引擎
MySQL中提到了存储引擎这个概念。简而言之,存储引擎就是表的类型。数据库的存储引擎决定了表在计算机中的存储方式。
SHOW ENGINES语句可以查看MySQL数据库支持的存储引擎。
InnoDB存储引擎
InnoDB存储引擎给MySQL的表提供了事物,回滚,崩溃修复和多版本并发控制的事物安全。InnoDB是MySQL上第一个提供了外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎无法比拟的。
InnoDB存储引擎支持外键FOREIGN KEY。外键所在的表为子表,外键所依赖的表为父表。父表中被子表外键关联的字段必须为主键。当删除,更新父表的某条信息时,子表也必须有相应的改变。
InnoDB创建的表的结构存储在.frm文件中。
InnoDB存储引擎的优势就在于提供了良好的事务管理,崩溃修复等功能。缺点就是读写效率稍差,占用的数据空间相对比较大。
MyISAM存储引擎
MyISAM曾经是MySQL的默认存储引擎。它将表存储成为3个文件。文件的名字与表的名字相同。扩展名包括frm,NYD,MYI。其中frm文件存储表的结构;NYD文件存储表的数据;MYI文件存储表的索引。
它的优点是占用空间小,处理速度快。缺点是不支持事务的完整性和并发性。
Memory存储引擎
使用存储在内存中的内容来创建表,而且所有数据也放在内存中。每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。该文件值存储表的结构。而其数据文件,都是存储在内存中的。这样有利于数据的快速处理,提高整个表的处理效率。服务器要有足够的内存来为止MEMORY存储引擎表的使用。
MEMORY存储引擎默认使用HASH索引。其速度要比B树快。
数据库存储引擎