mysql学习之1——mysql不同引擎的区别

以下表格是经过各种资料和书籍的查找,经过整理得出来的。可以作为参考,但不一定十分准确,希望读者及时给与补充和错误更正。

引擎名称 MyISAM InnoDB Archive Memory Heap merge
是否第三方
是否支持事务
是否支持外键
是否容错 修复数据库文件的MyISAMCHK,
恢复浪费空间的 MyISAMPACK,
不能在表损坏后恢复数据
自动灾难恢复 mysqld守护进程崩溃时,所有的Memory数据都会丢失 在关机之前没有进行保存,那么所有的数据都会丢失
索引 B-Tree(参与一个索引的所有字段长度之和不能超过1000字节),R-Tree,Full-Text B+Tree,(Cluster Primary Key,Secondary Index:B-Tree),自适应哈希索引(根据表的使用情况自动生成,无法进行人为创建) 不支持 Hash,B-Tree B-Tree B-Tree
表级锁定,并发量小 行级锁定,并发量大 行级锁定 页级锁定
读写速度 最快
cpu利用率 为处理巨大数据量时的最大性能设计,它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的
查询缓存
data缓冲池
存储结构 每个表被存在分离的文件中 表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区),可以是任何尺寸,即使文件尺寸被限制为2GB
存储空间 非常小
驻留内存
限制 每个MyISAM表最大索引数是64。 这可以通过重新编译来改变。每个索引最大的列数是16个 仅仅支持最基本的插入和查询两种功能 不支持Blog,和Text类型的字段 在用完表格之后就删除表格 本身不存储数据,Merge表就是几个相同MyISAM表的聚合器

以下是几篇参考文章的地址,以供读者参考:

http://www.cnblogs.com/sopc-mc/archive/2011/11/01/2232212.html

http://www.jb51.net/article/31892.htm

http://www.jb51.net/article/55849.htm

http://www.cnblogs.com/lina1006/archive/2011/04/29/2032894.html

http://blog.csdn.net/cheungjustin/article/details/5999880

http://toplchx.iteye.com/blog/1941415

http://blog.chinaunix.net/uid-21411227-id-1826943.html

浅谈MySQL存储引擎选择 InnoDB与MyISAM的优缺点分析:

http://www.jb51.net/article/38178.htm

MySQL存储引擎中的MyISAM和InnoDB区别详解(非常推荐,讲解细致):

http://www.jb51.net/article/62457.htm



你可能感兴趣的:(mysql学习之1——mysql不同引擎的区别)