`
happyzhen
  • 浏览: 49793 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MySQL engine/type类型InnoDB/MYISAM/MERGE/BDB/HEAP的区别

阅读更多

看MySQL参考手册 发现CREATE TABLE 时有多种数据库存储引擎:

TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM } 

网上查了下据说MyISAM、InnoDB两种引擎常用

大至区别如下[不知是否准确]:

高级处理:
MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。

执行速度:
MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快。

移值性:
MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。

-----------------------------

今天找到官方准确解释


·         MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。

·         InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。

·         BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。

·         Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。

·         Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。

·         Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。

·         Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。

·         Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。

·         Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。

请记住,对于整个服务器或方案,你并不一定要使用相同的存储引擎,你可以为方案中的每个表使用不同的存储引擎,这点很重要。
   

MySQL: MyISAM和InnoDB的区别

InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。

MyIASM是IASM表的新版本,有如下扩展: 
二进制层次的可移植性。 
NULL列索引。 
对变长行比ISAM表有更少的碎片。 
支持大文件。 
更好的索引压缩。 
更好的键吗统计分布。 
更好和更快的auto_increment处理。 

以下是一些细节和具体实现的差别:

1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”

任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势.

文章来自:http://www.phpap.com/view.php?tid=50195&extra=&page=2

分享到:
评论

相关推荐

    Mysql中查看表的类型InnoDB

    MySQL 数据表主要支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。

    MySQL 5.1官方简体中文参考手册

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...

    最全MySQL面试60题和答案

    BDB、HEAP、ISAM、MERGE、MyISAM、InnoDB以及Gemeni这7种Mysql表类型 3.简述在MySQL数据库中MyISAM和InnoDB的区别 4.Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别? 6.主键和候选键有什么区别? 7...

    最全mysql面试题-mysql-面试题

    BDB、HEAP、ISAM、MERGE、MyISAM、InnoDB以及Gemeni这7种Mysql表类型 3.简述在MySQL数据库中MyISAM和InnoDB的区别 MyISAM: 不支持事务,但是每次查询都是原子的; 支持表级锁,即每次操作是对整个表加锁; 存储...

    Mysql面试题60个带答案

    BDB、HEAP、ISAM、MERGE、MyISAM、InnoDB以及Gemeni这7种Mysql表类型 #### 3.简述在MySQL数据库中MyISAM和InnoDB的区别 MyISAM: ```` 不支持事务,但是每次查询都是原子的; 支持表级锁,即每次操作是对整个表...

    MySQL 5.1中文手冊

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...

    MySQL 5.1参考手册

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...

    MySQL 5.1参考手册 (中文版)

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...

    MySQL 5.1参考手册中文版

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG...

    mysql应用连接数据库工具

    sqlyog是连接各种数据库的可视化工具,非常良好。...支持更改数据表类型为ISAM、MYISAM、MERGE、HEAP、InnoDB、BDB。 刷新数据服务器、日志、权限、表格等。 诊断数据表--检查、压缩、修补、分析。

    MYSQL中文手册

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG...

    SQLyog 图形化管理MYSQL数据库的工具

    SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL... 24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析;

    mysql官方中文参考手册

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...

    MySQL5.1参考手册官方简体中文版

    1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证...

    mysql5.1中文手册

    MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和...

    SQLyog MySQL GUI 10.5.1-0 Ultimate 绿色中文版 带REGE注册

    24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB ; 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析。 27、基于C++和MySQLAPI编程; 28、方便快捷的...

    MySQL面试题26道

    1.MYSQL中有哪几种锁? 1、表级锁:开销小, 加锁快;不会出现死锁;锁定粒度大, 发生锁冲突的概率最高, 并发度最低。 2、行级锁:开销大, 加锁慢;会出现死锁;锁定粒度最小, 发生锁冲突的概率最低, 并发度也...

    SQLyog数据库检查工具(mysql),数据库工具

    SQLyog 是一个快速而简洁的图形化管理MYSQL数据库的工具,它能够在... 支持更改数据表类型为ISAM、MYISAM、MERGE、HEAP、InnoDB、BDB。 刷新数据服务器、日志、权限、表格等。 诊断数据表--检查、压缩、修补、分析。

    SQLyog(MYSQL数据库管理) v12.3.3 官方版.zip

    SQLyog是一款快速而简洁的... 24、支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB 25、刷新数据服务器、日志、权限、表格等; 26、诊断数据表:检查、压缩、修补、分析; SQLyog(MYSQL数据库管理)截图

Global site tag (gtag.js) - Google Analytics