日期:2014-05-16 浏览次数:20433 次
?
??区别 | ??MyISAM | ?InnoDB |
构成上的区别: |
? 每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。 ? |
?基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB ?? |
事务处理上方面: |
? ?MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持 ? ? |
??InnoDB提供事务支持事务,外部键等高级数据库功能 ?? |
??SELECT , ?UPDATE, INSERT,Delete操作 |
??如果执行大量的SELECT,MyISAM是更好的选择 ?? |
??1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 ??2.DELETE?? FROM table时,InnoDB不会重新建立表,而是一行一行的删除。 ??3.LOAD?? TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用 ?? |
??对AUTO_INCREMENT的操作 |
? 每表一个AUTO_INCREMEN列的内部处理。 ? |
??如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。 ??自动增长计数器仅被存储在主内存中,而不是存在磁盘上 ??关于该计算器的算法实现,请参考 ??AUTO_INCREMENT列在InnoDB里如何工作 |
??表的具体行数 | ??select count(*) from table,MyISAM只要简单的读出保存好的行数,注意的是,当count(*)语句包含?? where条件时,两种表的操作是一样的 ?? |
??InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行 ?? |
??锁 | ??表锁 |
??提供行锁(locking
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|