首页 > 代码库 > MySQL数据库的引擎

MySQL数据库的引擎

MySQL数据库的引擎(缺省情况下)有三个:

ISAM

MYISAM

HEAP

另外 INNODB BERKLEY(BDB)也常常可以使用

ISAM:

优点:设计之初就考虑到读次数远大于数据更新的次数,因此执行读操作很快,而且不占用大量的内存和存储资源

缺点:不支持事物,也不能够容错 没有索引和字段管理的功能

MYISAM:

优点:提供ISAM里所没有的索引和字段管理的大量功能,还有一种表格锁定的机制,优化多个并发的读写操作。

缺点:表格锁定机制,代价是需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。不能在表损坏后恢复数据。不支持事物处理,外来键

适用场景:1、做很多count计算;2、插入不频繁,查询非常频繁;3没有事物

HEAP:

优点:允许只驻留在内存里的临时表格,驻留在内存里让HEAP比ISAM和MYISAM都快。数据行被删除的时候,HEAP也不会浪费大量的空间

缺点:管理的数据是不稳定的,如果在关机之前没有进行保存,那么所有的数据都会丢失。

InnoDB:

优点:对事物处理和外来键的支持。提供了具有提交回滚和崩溃恢复能力的事物安全存储引擎

缺点:比ISAM和MYISAM慢

适用场景:1、可靠性要求比较高,或者要求事物;2、表更新和查询都相当频繁,并且表锁定的机会比较大的情况。

MySQL数据库的引擎