文档介绍:为梦起航
不积小流无以成江海
InnoDB和MyISAM区别总结
分类: 数据库 2013-12-21 14:53 13人阅读评论(0) 收藏举报
数据库MySQL
InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应
用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型
的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持
已经外部键等高级数据库功能。
MyIASM是IASM表的新版本,有如下扩展:
·二进制层次的可移植性。
·NULL列索引。
·对变长行比ISAM表有更少的碎片。
·支持大文件。
·更好的索引压缩。
·更好的键吗统计分布。
·更好和更快的auto_increment处理。
以下是一些细节和具体实现的差别:
◆。
◆ 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要
扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当
count(*)语句包含 where条件时,两种表的操作是一样的。
◆,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,
可以和其他字段一起建立联合索引。
◆ FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
◆ TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM
表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,假如在执行一个SQL语句时MySQL不能确定要扫描的范
围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”
1
综上所述,任何一种表都不是万能的,只有恰当的针对业务类型来选择合适的表类型,才能最大的
发挥MySQL的性能优势。
更多
上一篇:轻松搞定面试中的二叉树题目
下一篇:Mysql常用命令
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5
Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop ponents
Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6
Rackspace Web App SpringSide puware