`
- 浏览:
27320 次
-
1. ISAM : 擅长读取,读取速度快,且不占用大量的内存和存储,缺点:不支持事务,不能容错(说法有待商榷)
2. MYISAM: ISAM的扩展格式和缺省的数据库引擎;提供了ISAM没有的索引支持和大量的字段管理功能,而且提供了一种称为表格锁定的机制,来优化并发的读写,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MYISAM强调了快速读取操作,这就是为什么mysql受到了WEB开发如此亲睐的原因,因为WEB大量的操作都是读。所以大多数虚拟机提供商和INTERNET平台提供商支持MYISAM格式。缺点:不能在表损坏后修复
HEAP:允许只驻留在内存中的,驻留在内存中临时表的操作要比ISAM和MYISAM多要快。但是它管理的数据都是不稳定的,如果在断电前没有保存,那么所有的数据都会丢失,在数据行被删除的时候,他也不会浪费大量的空间,HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用
4.InnoDB:尽管要比ISAM和MYISAM慢很多,但是InnoDB包括了对事物处理和外来键的支持,这两点都是ISAM和MYISAM没有的。
MySQL 官方对InnoDB是这样解释的:InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读,这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。
InnoDB是为处理巨大数据量时的最大性能设计,它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。
InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。
InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQL的默认表。
InnoDB被用来在众多需要高性能的大型数据库站点上产生。著名的Internet新闻站点Slashdot.org运行在InnoDB上。 Mytrix, Inc.在InnoDB上存储超过1TB的数据,还有一些其它站点在InnoDB上处理平均每秒800次插入/更新的
一般来说:MYISAM适合:1.不需要事务2.频繁的查询,很少的插入
innoDB适合:1.可靠性要求比较高,或者要求事务
2.比较频繁的插入和修改操作,并且表锁定的机会比较高
附上别人的测试报告:
所有的性能测试在:Micrisoft window xp sp2 , Intel(R) Pentinum(R) M processor 1.6oGHz 1G 内存的电脑上测试。
测试方法:连续提交10个query, 表记录总数:38万 , 时间单位 s
引擎类型 MyISAM InnoDB 性能相差
count 0.0008357 3.0163 3609
查询主键 0.005708 0.1574 27.57
查询非主键 24.01 80.37 3.348
更新主键 0.008124 0.8183 100.7
更新非主键 0.004141 0.02625 6.338
插入 0.004188 0.3694 88.21
(1)加了索引以后,对于MyISAM查询可以加快:4 206.09733倍,对InnoDB查询加快510.72921倍,同时对MyISAM更新速度减慢为原来的1/2,InnoDB的更新速度减慢为原来的1/30。要看情况决定是否要加索引,比如不查询的log表,不要做任何的索引。
(2)如果你的数据量是百万级别的,并且没有任何的事务处理,那么用MyISAM是性能最好的选择。
(3)InnoDB表的大小更加的大,用MyISAM可省很多的硬盘空间。
在我们测试的这个38w的表中,表占用空间的情况如下:
引擎类型 MyISAM InnoDB
数据 53,924 KB 58,976 KB
索引 13,640 KB 21,072 KB
占用总空间 67,564 KB 80,048 KB
另外一个176W万记录的表, 表占用空间的情况如下:
引擎类型 MyIsam InnorDB
数据 56,166 KB 90,736 KB
索引 67,103 KB 88,848 KB
占用总空间 123,269 KB 179,584 KB
原文详见:http://www.cnblogs.com/sopc-mc/archive/2011/11/01/2232212.html
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
mysql学习札记
MySQL存储引擎学习
MySQL体系结构 MySQL存储引擎 InnoDB存储引擎
mysql-存储引擎
最近在学习MySQL技术内幕 InnoDB存储引擎 第2版,整理了一些文档分享出来,同时也方便以后查看。若有不当之处,烦请批评指正。 1. MySQL体系结构和存储引擎 2. InnoDB存储引擎 2.1 InnoDB体系结构 2.2 ...
mysql存储引擎是mysql组件中的一部分,而MySQL组成是由、管理工具、连接池、SQL接口、分析器、优化器、缓存、存储引擎、硬盘组成的,而mysql存储引擎就是mysql组成中的一个功能模块,存储引擎属于表的处理器
前一阶段,做一个项目,使用到了mysql,工作之余,顺便收集了一些资料,对mysql初学者,或对此有一点兴趣的同仁有点帮助。
mysql存储引擎比较
MySQL内部存储引擎介绍,两大类引擎InnoDB和MyISM介绍
MySQL数据库为开发人员所做的就好像是按按钮换引擎;它让你选择数据库引擎,并给你一条简单的途径来切换它。MySQL的自带引擎肯定是够用了,但是在有些情况下,其他的引擎可能要比手头所用更适合完成任务。如果愿意的...
个人推荐mysql学习资料, 很不错,好东西不但要珍藏,还要分享
java开发环境+大数据开发环境+mysql经典面试题+mysql概念学习 java开发环境+大数据开发环境+mysql经典面试题+mysql概念学习 java开发环境+大数据开发环境+mysql经典面试题+mysql概念学习 java开发环境+大数据开发...
NULL 博文链接:https://hugang357.iteye.com/blog/1057327
若何用mysql-connector-net-6.2.2.rar 来进行mysql数据库数据调用的详细使用方法,亲自测试通过。比.net自带引擎访问数据效率高。
机房精空调分类2023+MySQL学习练习数据库+MySQL学习毕业设计机房精空调分类2023+MySQL学习练习数据库+MySQL学习毕业设计机房精空调分类2023+MySQL学习练习数据库+MySQL学习毕业设计机房精空调分类2023+MySQL学习练习...
mysql DBA学习笔记
java开发环境+大数据开发环境+mysql经典面试题+mysql概念学习 java开发环境+大数据开发环境+mysql经典面试题+mysql概念学习 java开发环境+大数据开发环境+mysql经典面试题+mysql概念学习 java开发环境+大数据开发...
MySQL存储引擎源码学习
mysql搜索引擎分类,及每种搜索引擎的简单分类和作用
《MySQL技术内幕:InnoDB存储引擎》是国内目前唯一的一本关于InnoDB的著作,由资深MySQL专家亲自执笔,中外数据库专家联袂推荐,权威性毋庸置疑。内容深入,从源代码的角度深度解析了InnoDB的体系结构、实现原理、...