上文里,我们介绍了MySQL存储引擎的一些基本概念,本文开始具体介绍MySQL的各种存储引擎。
存储引擎:MyISAM、MERGE、MEMORY、EXAMPLE
MyISAM
MyISAM引擎是大多数MySQL安装程序的默认引擎,起源于早期版本MySQL支持的ISAM引擎。这种引擎提供了最佳的性能和功能的组合,尽管它缺少事务处理功能(使用InnoDB或者BDB引擎)并且使用表级锁定。
除非你需要事务处理功能,否则MyISAM引擎可以有效存储和处理绝大多数应用所需的数据。不过如果数据插入和更新操作比读取数据还要多的的应用可能会引起MyISAM引擎性能降低。根据原来的设计思路,MyISAM引擎是针对那些90%以上的数据库访问都是读操作的数据库来优化的。
由于表级锁定,有大量的插入或者更新行的数据库就会成为性能的瓶颈,因为这个表在增加数据的时候被锁定了。幸运的是这种限制在非事务处理数据库中不是个大问题。
| 名称 | MyISAM |
| 版本 | v3.23 |
| 默认安装 | 是 |
| 数据存储限制 | 无 |
| 索引限制 | 每个表64个索引;每个索引最多16个列 |
| 事务处理支持 | 不支持 |
| 锁定级别 | 表级锁定 |
MERGE
MERGE引擎类型允许你把许多结构相同的表合并为一个表。然后,你可以执行查询,从多个表返回的结果就像从一个表返回的结果一样。每一个合并的表必须有同样的表定义。
MERGE存储引擎在下面这种使用场合会最为有用,如果需要把日志纪录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要制作来自多个表的合计查询,MERGE表这时会非常有效。然而,这项功能有局限性。你只能合并MyISAM表而且必须严格遵守相同的表定义的限制。虽然这看起来好像是一个大问题,但是,如果你使用另外一种表类型(例如InnoDB),这种合并可能就不需要了。
| 名称 | MERGE |
| 版本 | v3.23.25 |
| 默认安装 | 是 |
| 数据存储限制 | 基本表必须是MyISAM |
| 索引限制 | N/A |
| 事务处理支持 | 否 |
| 锁定级别 | 表级锁定 |