`
wanfan2008
  • 浏览: 25734 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

MySQL数据库InnoDB和MyISAM数据引擎的差别

阅读更多

InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能( a% W; `. n( k/ w3 H* J/ j6 X5 A" ?
4 ~* R: j" ]4 x6 Q" r
MyIASM是IASM表的新版本,有如下扩展:  
二进制层次的可移植性。  . Q* O( y/ V* c  T
NULL列索引。  
对变长行比ISAM表有更少的碎片。  5 A, o6 e" B1 O2 v
支持大文件。  " z% I$ B" X8 i) _
更好的索引压缩。  - a) R6 W* g: w4 M8 f: Y
更好的键吗统计分布。  
更好和更快的auto_increment处理。  


以下是一些细节和具体实现的差别:
u- m. H4 W3 y
1.InnoDB不支持FULLTEXT类型的索引。# k# y) c  v" h% F
2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。) V2 Z3 S4 E( B! J! I3 p
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。0 e1 Q, {1 [/ j8 ~8 i1 W3 i
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。" {( |: |. i. _- ?/ p3 v
+ y, A* d. u+ d. S1 U6 d% Z
另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”  E- b: g) E' X, K0 r* N* T1 q

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

分享到:
评论

相关推荐

    MyISAM引擎与InnoDB引擎性能的对比

    MySQL数据库系统提供了多种存储引擎,其中最常用的两种是MyISAM和InnoDB。它们各自具有独特的特性和适用场景,理解二者的性能差异对于优化数据库设计至关重要。 MyISAM引擎是MySQL早期的默认存储引擎,以其高速度和...

    mysql更改引擎(InnoDB,MyISAM)的方法

    mysql默认的数据库引擎是MyISAM,不支持事务和外键,也可使用支持事务和外键的InnoDB。 查看当前数据库的所支持的数据库引擎以及默认数据库引擎 数据库支持的引擎和默认数据库引擎代码: 代码如下:show engines; ...

    MySQL数据库INNODB 表损坏修复处理过程

    MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了。innodb表损坏不能通过repair table 等修复myisam的命令操作。

    68.选择合适的数据库引擎和myisam和innodb的主要区别?.avi

    mysql数据库 选择合适的数据库引擎和myisam和innodb的主要区别

    《MYSQL备份与恢复》之 Innodb与 MyISAM引擎

    (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 (2)innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的,innobackupex是一个perl脚本封装,封装了xtrabackup,所以能...

    8.MySQL存储引擎--MyISAM与InnoDB区别1

    MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们都有其优缺点,本文将对比MyISAM和InnoDB存储引擎的区别。 FULLTEXT索引 MyISAM支持FULLTEXT索引,而InnoDB不支持。FULLTEXT索引可以对文本字段进行索引,以提高...

    Innodb与Myisam引擎的区别与应用场景

    在MySQL数据库管理系统中,选择合适的存储引擎对于确保数据的安全性、完整性和性能至关重要。其中,InnoDB和MyISAM是最为常见的两种存储引擎,它们各自具备独特的特性和适用场景。下面将详细探讨这两种引擎的主要...

    MySQL内核:InnoDB存储引擎 卷1.pdf.zip

    《MySQL内核:InnoDB存储引擎 卷1》是一本深度探讨MySQL数据库系统核心部分——InnoDB存储引擎的专业书籍。这本书以超高清的PDF格式呈现,包含详细的书签,便于读者快速定位和查阅相关内容。InnoDB作为MySQL中最常用...

    MySQL InnoDB和MyISAM数据引擎的差别分析

    MySQL中的InnoDB和MyISAM是两种非常重要的存储引擎,它们各自有着独特的特性和适用场景。在选择使用哪种引擎时,需要根据实际的应用需求来决定。 InnoDB是MySQL的默认存储引擎,它提供了ACID(原子性、一致性、隔离...

    mysql 中InnoDB和MyISAM的区别分析小结

    MySQL中的InnoDB和MyISAM是两种非常重要的存储引擎,它们各自有着独特的特性和适用场景。下面我们将深入探讨这两种引擎的主要区别。 首先,InnoDB是MySQL的默认存储引擎,它支持事务处理,这意味着用户可以执行诸如...

    MySQL数据库:MySQL存储引擎.pptx

    而MySQL数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎,MySQL的核心就是存储引擎。 ;MySQL 5.7支持的存储引擎有:InnoDB、MyISAM、...

    MySQL数据库InnoDB引擎下服务器断电数据恢复方法

    MySQL数据库在InnoDB引擎下运行时,由于其事务处理机制和数据存储方式,当服务器意外断电时,可能会导致数据不一致或者丢失。在这种情况下,恢复数据需要特别注意,因为简单地复制数据库文件可能无法成功。以下是...

    MySQL数据库备份和恢复

    ### MySQL数据库备份与恢复:深度解析与实践指南 在当今数据驱动的世界中,数据库的稳定性和数据的安全性显得尤为重要。MySQL作为全球最流行的开源关系型数据库管理系统之一,其备份和恢复策略是确保数据安全和系统...

    mysql DB引擎myisam与innodB

    在 MySQL 数据库系统中,存在多种不同的存储引擎,其中最为人所熟知且广泛使用的两种是 MyISAM 和 InnoDB。这两种存储引擎各自具有独特的特点和适用场景。 #### InnoDB:事务安全与外键支持 InnoDB 是 MySQL 中...

    MySQL存储引擎之争-InnoDB与MyISAM全面对决

    本文主要讨论的是InnoDB和MyISAM这两个引擎的对决,两者在事务处理、数据恢复、并发控制、存储空间占用以及读取性能等方面都有显著差异。 首先,InnoDB存储引擎支持事务处理,这使得它适用于那些需要确保数据完整性...

    MyISAM和InnoDB的异同

    在MySQL数据库系统中,存储引擎是数据库的核心组件之一,它负责处理数据的存储、检索等底层操作。MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们各自拥有不同的特点和适用场景。 #### MyISAM引擎概述 MyISAM...

    MySQL存储引擎MyISAM与InnoDB区别总结整理

    MyISAM存储引擎的特点是:表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发、重负荷生产系统上,表锁结构的特性就显得力不从心; 以下是MySQL 5.7 MyISAM存储引擎的版本...

    mysql架构与存储引擎(MySQL逻辑架构、InnoDB引擎、MyISAM引擎、存储引擎选择).docx

    除了InnoDB和MyISAM之外,MySQL还支持多种其他的存储引擎,如Memory、Archive、Federated等,这些引擎各有特色,可以满足不同的业务需求。 #### 四、存储引擎选择 选择合适的存储引擎对于保证数据库性能和稳定性至...

Global site tag (gtag.js) - Google Analytics