六大不同的MySQL存储引擎InnoDB和Myisam之间

六大不同的MySQL存储引擎InnoDB和Myisam之间
MyISAM
InnoDB
作文的差异:
每个MyISAM存储在磁盘分为三档,第一个文件名开头的表的名称,以及扩展名表示文件的类型
FRM文件存储表的定义。

数据文件的扩展is.myd(MYDATA)。

索引文件的扩展is.myi(myindex)。
基于磁盘的资源是InnoDB表空间的数据文件和日志文件,和InnoDB表的大小是有限的操作系统文件的大小,通常2gb

关于事务处理的几个方面:
MyISAM类型表强调性能,其执行比InnoDB类型更快,但是不提供事务支持
InnoDB提供高级的数据库功能,如交易支持交易,外部键,等等

选择更新、插入、删除操作
如果大量的选择时,MyISAM是更好的选择
1。如果你的数据执行大量的插入或更新,对性能的考虑,你应该使用InnoDB表
当2.delete从表,InnoDB不重建一个表,但一行行。

3.load表从主操作不适合InnoDB。解决的办法是改变InnoDB表MyISAM表首先,导入数据,然后转换为InnoDB表,但它并不适用于额外的InnoDB特征(如表的外键)。
对auto_increment操作

每桌一auto_incremen柱内部处理。
MyISAM自动更新这个栏目的插入和更新操作。这使得auto_increment柱更快(至少10%)。当顶部的序列的值被删除,它不能再被使用。(当auto_increment列定义为一个多最后一列列的索引,可以有利用价值从顶部的序列删除的情况下)。

的auto_increment值可以通过修改表或myisamch复位

对于auto_increment类型字段,InnoDB必须包含这个领域的唯一指标,但在MyISAM,它可以建立与其他领域的联合指数。

Better and faster auto_increment processing
如果你指定一个表的auto_increment列在数据字典中的InnoDB表处理包含一个计数器称为自动增长计数器,用于分配新值的列。
自动增长计数器只存储在主存中,而不存储在磁盘上。

对于这个计算器的算法实现,请参考

auto_increment列如何在InnoDB的工作
表的特定行数
select count(*)从表,MyISAM只读出保存的行数。注意,当计数(*)语句包含在条件下,两个表的操作是相同的。
InnoDB不保存在表中,这是行数,当select count(*)从表时,InnoDB必须扫描整个表来计算有多少行


表锁
锁定行级提供与Oracle类型一致的无锁读(非锁定读入)。

选择),此外,InnoDB表的行锁也不是绝对的。如果MySQL不能确定扫描范围时执行的SQL语句,InnoDB表也将锁定整个表,如更新表设置Num = 1名。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部