在我的情况下,哪个MySQL存储引擎会更好


Which MySQL storage engine will be better in my situation

我必须开发一个大型应用程序,一个学校管理系统;哪个MySQL存储引擎会更好?MyIsam或InnoDB或任何其他?

InnoDb支持关系,而MyISAM不支持。如果您的应用程序需要这些功能,则应使用InnoDB。其他主要差异包括:

  • InnoDB较新,而MyISAM较旧
  • InnoDB更复杂,而MyISAM更简单
  • InnoDB在数据完整性方面更加严格,而MyISAM则比较宽松
  • InnoDB实现行级锁用于插入和更新,MyISAM实现表级锁
  • InnoDB有事务,而MyISAM没有
  • InnoDB有外键和关系约束,而MyISAM没有
  • InnoDB具有更好的崩溃恢复能力,而MyISAM在系统崩溃时恢复数据完整性方面较差
  • MyISAM有全文搜索索引,而InnoDB没有

杨扬来源

看看这个问题,找出自己,哪一个更适合这种情况。

通过以下链接,您可以更好地了解如何使用innodb或MyISAM。

http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/

http://www.mikebernat.com/blog/MySQL_-_InnoDB_vs_MyISAM

首先,让我告诉你,对于这种管理系统,并发不是一个主要问题,因为你不会同时进行事务。因此,你提到的存储机制InnoDB对于你的应用程序来说,有足够多的功能,如ACID合规性、崩溃恢复、行级锁定等,但这并不意味着InnoDB更好。

主要问题是数据仓库,因为在这样的系统中,数据会在很大程度上增长。因此,为了满足这一需求,Mylsam看起来很合适,因为它是默认的存储引擎,并且在数据仓库环境中广泛使用。

Merge或MRG_MylSam是另一种选择。它使您能够对一系列相同的MylSam表进行逻辑分组,并将它们作为一个对象进行引用。也非常适合VLDB(超大数据库)环境。

其他一些存储引擎是NDBCluster、Federated、Archive等,我认为你不需要。。。祝你好运

您没有提供太多关于任务的信息。除了innodb在并发环境中使用比myisam更有效的阻塞之外,您很可能会有相关的表(innodb支持外键)。因此,使用InnoDb作为默认引擎是合理的。

使用InnoDB,它的性能一直很好,而且它还支持外键。

在撰写本文时,还要针对最新的MySQL verison 5.5.x。当来自Oracle的Vanilla MySQL的性能出现问题时,您可以考虑其他服务器,如Percona(http://percona.com)它们是插入式替换。

MySQL 5.5中的BTW InnoDB是MySQL服务器中的默认存储引擎