MySql中的MyISAM和Inno数据库类型有什么区别?
答案 0 :(得分:54)
主要区别在于InnoDB支持交易,而MyISAM则不支持。
还有许多其他差异,但我所知道的常见的是:
我确信谷歌搜索或MySQL网站会更详细地提出许多其他差异。
答案 1 :(得分:19)
InnoDB和MyISAM
功能和效果比较:
鉴于这些差异,InnoDB和MyISAM彼此之间有着独特的优势和劣势。它们在某些情况下比其他情况更适合。
InnoDB的优势
InnoDB的缺点
MyISAM的优势
MyISAM的缺点
比较非常简单。 InnoDB更适合需要频繁插入和更新的数据关键情况。另一方面,MyISAM在不完全依赖数据完整性的应用程序中表现更好,而且大多只选择并显示数据。
<强> 参考: 强> Comparison InnoDB and MyISAM
您也可以在此处查看更多详情: MyISAM Or InnoDB MySQL engine?
希望这有帮助。
答案 2 :(得分:16)
MyISAM支持(非标准SQL)全文索引,InnoDB仍然没有。这是我们今天使用MyISAM的唯一原因。
答案 3 :(得分:4)
MyISAM和InnoDB之间最重要的区别是InnoDB支持事务和外键。如果您需要外键和相关功能(例如自动级联删除),则需要使用InnoDB。
InnoDB在大多数情况下比MyISAM慢,但由于更好的锁定机制,在某些条件下可以更快地执行;当插入/更新正在执行时,MyISAM锁定整个表以进行读取。 InnoDB可以进行行级锁定,从而允许在表上进行多次并发写入和读取。
答案 4 :(得分:3)
您可以获得有关MyISAM和更多信息的更多信息。 MySQL文档中的InnoDB:
http://dev.mysql.com/doc/refman/5.1/en/myisam-storage-engine.html
答案 5 :(得分:1)
主要区别在于InnoDB支持transactions,而MyISAM则不支持。{/ p>
答案 6 :(得分:1)
MyISAM和InnoDB也以不同方式将数据存储在磁盘上。 MyISAM为每个表使用数据文件和索引文件,存储在以数据库命名的目录中。 InnoDB似乎将所有内容整合在一个名为ibdata1的文件中。
答案 7 :(得分:1)
与MyISAM不同,InnoDB可能在NFS上存在问题。
来自Configuring InnoDB (MySQL version 5.5)
注意
如果考虑可靠性 你的数据,不要配置InnoDB 在NFS上使用数据文件或日志文件 卷。潜在问题各不相同 根据操作系统和NFS的版本, 并包括缺乏这样的问题 保护免受冲突的写入, 和最大文件大小的限制。
答案 8 :(得分:1)
InnoDB功能 1.提供完整的交易功能,完全符合ACID(原子性,一致性,隔离性和耐久性)。
它具有行级锁定。通过支持行级锁定,您可以将数据添加到InnoDB表,而无需引擎使用每个插入锁定表,这样可以加速数据库中信息的恢复和存储。
InnoDB系统的关键是数据库,缓存和索引结构,其中索引和数据都缓存在内存中并存储在磁盘上这样可以实现非常快速的恢复,甚至可以在非常大的数据集上运行
InnoDB支持外键约束
InnoDB支持空间数据类型(无空间索引)
Innodb支持非锁定ANALYZE TABLE,仅在服务器运行了很长时间后才需要,因为它潜入索引统计信息并在表打开时获取索引信息。
Innodb没有单独的索引文件,因此无需打开它们。
Innodb以主键顺序(在ALTER之后)一次构建一行索引,这意味着索引树不是按最佳顺序构建并且是碎片化的。目前无法对InnoDB索引进行碎片整理,因为InnoDB无法通过在MySQL 5.0中排序来构建索引。即使丢弃并重新创建InnoDB索引,也可能导致索引碎片,具体取决于数据。
一个表最多可包含1000列。
InnoDB内部最大密钥长度为3500字节,但MySQL本身将此限制为3072字节。 (对于MySQL 5.0.17之前的非64位构建,以及5.0.15之前的所有构建,为1024字节。)
InnoDB表不支持FULLTEXT索引。
MYISAM特色
你可以在这里找到更多细节 http://faisalbhagat.blogspot.com/2014/09/innodb-vs-myisam.html
答案 9 :(得分:0)
以下是InnoDB和MyIsam之间差异的描述:
Differences between InnoDB and MyIsam
几乎没有差异:
答案 10 :(得分:0)
MyISAM在备份方面更方便,因为只需锁定所有表并直接在文件系统中复制文件就相当简单。 (mysqlhotcopy这是一个perl-script甚至是mysql afaik的一部分)
InnoDB有点复杂,只是复制文件是行不通的,因为它们无法在另一台开箱即用的机器上恢复。
然而,有商业软件提供InnoDB hotcopying。
答案 11 :(得分:0)
虽然事务支持是主要区别,但如果您有long-running SELECT queries mixed with UPDATE statements,则表级锁定可能会成为问题。