谈谈数据库中MyISAM与InnoDB区别
上一篇 /
下一篇 2012-09-17 09:14:31
/ 个人分类:数据库
)LOlZ2^%eC a8]x5l0 MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method
(有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具。
MyISAM表格可以被压缩,而且它们支持全文搜索。它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量
的SELECT,MyISAM是更好的选择。51Testing软件测试网F%U;o5m*l
}6f2[1viX
n{6f0d*Fl-k0 MyIASM是IASM表的新版本,有如下扩展:
}/c:FC8u5N if0g RYGjqy@`0 ● 二进制层次的可移植性。
G4? @m's1t051Testing软件测试网Y7M x9D
o_X;j2k#^ ● NULL列索引。51Testing软件测试网?r\x:N5h.^s
51Testing软件测试网*W.\1b!Z3qvG:~9C)W ● 对变长行比ISAM表有更少的碎片。51Testing软件测试网/h(J+Qd1K
G
)]}4e*di+j_0 ● 支持大文件。51Testing软件测试网8D9B)v;v8x
t2oh$mk-e,a?ua5y0 ● 更好的索引压缩。
9Hy~#Qi.hN0![{'^4f_L9^0 ● 更好的键吗统计分布。
"[Y5h8@KH5n%v051Testing软件测试网Fh,A2U?D]8@&e ● 更好和更快的auto_increment处理。51Testing软件测试网8NU/i#md-C:V3c
#d.o~Z]L9t5n0
InnoDB:这种类型是事务安全的。它与BDB类型具有相同的特性,它们还支持外键。InnoDB表格速度很快,具有比BDB还丰富的特性,
因此如果需要一个事务安全的存储引擎,建议使用它。如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。对
于支持事物的InnoDB类型的表,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN
开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打开也可以),将大大提高性能。
hQ'O if x0