MyISAM和InnoDB的区别

MyISAM 引擎特点:
(1)不支持事务
(2)表级锁定
(3)读写相互阻塞,写入不能读,读时不能写
(4)只缓存索引
(5)不支持外键约束
(6)不支持聚簇索引
(7)读取数据较快,占用资源较少
(8)不支持MVCC(多版本并发控制机制)高并发
(9)崩溃恢复性较差
(10)MySQL5.5.5 前默认的数据库引擎

MyISAM 存储引擎适用场景:
(1)只读(或者写较少)
(2)表较小(可以接受长时间进行修复操作)

MyISAM 引擎文件:
(1)tbl_name.frm :表格式定义
(2)tbl_name.MYD :数据文件
(3)tbl_name.MYI :索引文件


InnoDB引擎特点:
(1)行级锁
(2)支持事务,适合处理大量短期事务
(3)读写阻塞与事务隔离级别相关
(4)可缓存数据和索引
(5)支持聚簇索引
(6)崩溃恢复性更好
(7)支持MVCC高并发
(8)从MySQL5.5后支持全文索引
(9)从MySQL5.5.5开始为默认的数据库引擎

InnoDB数据库文件:
(1)所有InnoDB表的数据和索引放置于同一个表空间中:
数据文件:ibdata1, ibdata2,存放在datadir定义的目录下
表格式定义:tb_name.frm,存放在datadir定义的每个数据库对应的目录下

(2)每个表单独使用一个表空间存储表的数据和索引:
两类文件放在对应每个数据库独立目录中
数据文件(存储数据和索引):tb_name.ibd
表格式定义:tb_name.frm

上一篇:MySQL之六:MySQL常见面试题


下一篇:Cocos2d-android (05) 渐变动画(颜色,淡入淡出。。。)