MySql中的MyISAM和Inno数据库类型有什么区别?
主要区别在于InnoDB支持事务,而MyISAM则不支持。
还有许多其他的差异,但我所知道的常见的是:
我确信谷歌搜索或MySQL网站将更详细地提出许多其他差异。
以下是InnoDB和MyIsam之间差异的描述:
Differences between InnoDB and MyIsam
差异很小:
MyISAM在备份方面更方便,因为只需锁定所有表并直接在文件系统中复制文件就相当简单。 (mysqlhotcopy这是一个perl脚本甚至是mysql afaik的一部分)
InnoDB有点复杂,只是复制文件不会,因为它们无法在另一台开箱即用的机器上恢复。
但是,有商业软件提供InnoDB hotcopying。
虽然事务支持是主要区别,但如果你有long-running SELECT queries mixed with UPDATE statements,表级锁定可能是个问题。
InnoDB和MyISAM
功能和性能比较:
鉴于这些差异,InnoDB和MyISAM各有其优点和缺点。它们在某些情况下比在另一种情况下更适合。
InnoDB的优点
InnoDB的缺点
MyISAM的优点
MyISAM的缺点
比较非常简单。 InnoDB更适合需要频繁插入和更新的数据关键情况。另一方面,MyISAM在不完全依赖于数据完整性的应用程序中表现更好,而且大多只是选择和显示数据。
参考:Comparison InnoDB and MyISAM
您也可以在这里查看更多详情:MyISAM Or InnoDB MySQL engine?
希望这可以帮助。
MyISAM支持(非标准SQL)全文索引,InnoDB仍然没有。这是我们今天使用MyISAM的唯一原因。
MyISAM和InnoDB之间最重要的区别是InnoDB支持事务和外键。如果您需要外键和相关功能(例如自动级联删除),则需要使用InnoDB。
对于大多数用途,InnoDB比MyISAM慢,但由于更好的锁定机制,在某些条件下可以更快地执行;当插入/更新正在执行时,MyISAM锁定整个表以进行读取。 InnoDB可以进行行级锁定,从而允许多个并发写入和读取表。
您可以在MySQL文档中获得有关MyISAM和InnoDB的更多信息:
http://dev.mysql.com/doc/refman/5.1/en/myisam-storage-engine.html
主要区别在于InnoDB支持transactions,而MyISAM则不支持。
MyISAM和InnoDB也以不同的方式将他们的数据存储在磁盘上。 MyISAM为每个表使用数据文件和索引文件,存储在以数据库命名的目录中。 InnoDB似乎将所有内容整合在一个名为ibdata1的文件中。
与MyISAM不同,InnoDB可能在NFS上存在问题。
来自Configuring InnoDB (MySQL version 5.5)
警告
如果可靠性是数据的考虑因素,请不要将InnoDB配置为在NFS卷上使用数据文件或日志文件。潜在问题根据操作系统和NFS版本而有所不同,包括缺少对冲突写入的保护以及最大文件大小限制等问题。
InnoDB功能1.提供完整的交易功能,符合完整的ACID(原子性,一致性,隔离性和耐久性)。
你可以在http://faisalbhagat.blogspot.com/2014/09/innodb-vs-myisam.html找到更多细节