读书人

Mysql 储存引擎

发布时间: 2013-03-06 16:20:31 作者: rapoo

Mysql 存储引擎
MySQL支持的存储引擎包括MyISAM,InnoDB,BDB,MEMORY,MERGE,EXAMPLE,NDB Cluster,ARCHIVE,CSV,BLACKHOLE,FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。查看默认存储引擎,可以使用以下命令:

mysql> show variables like 'have%';+----------------------+----------+| Variable_name | Value |+----------------------+----------+| have_compress | YES || have_crypt | YES || have_csv | YES || have_dynamic_loading | YES || have_geometry | YES || have_innodb | YES || have_ndbcluster | NO || have_openssl | DISABLED || have_partitioning | YES || have_profiling | YES || have_query_cache | YES || have_rtree_keys | YES || have_ssl | DISABLED || have_symlink | YES |+----------------------+----------+14 rows in set (0.01 sec)


特点 MyISAM InnoDB存储限制 有 64TB事务安全 支持锁机制 表锁 行锁全文索引 支持支持外键 支持

MyISAM是MySQL的默认存储引擎,不支持事务、也不支持外键,其优势是访问速度快,对事务完整性没有要求或者以SELECT、INSERT 为主的应用基本上都可以使用这个引擎来创建表。
InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

如何选择合适的存储引擎?

MyISAM:如果应用是以读操作和插入操作为主,只有更少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的。InnoDB:用于事务处理应用程序,支持外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询以外,还包括很多的更新、删除操作,那么InnoDB存储引擎应该是比较合适的选择。

参考书籍:
深入浅出MySQL

读书人网 >Mysql

热点推荐