MyISAM会在几乎只读的表中更好吗?

时间:2012-11-14 22:35:01

标签: mysql innodb myisam

基本上我有一个lang表,其中包含pg VARCHAR(20)id VARCHAR(20)en (TEXT)ru (TEXT)列,用于我网站的多语言支持和99.999%的案例数据将从表中读取而不是写入。我听说MyISAM在面向读取的表上比InnoDB表现更好;该表应该是MyISAM还是InnoDB,考虑到只有pg列用作WHERE子句?

1 个答案:

答案 0 :(得分:1)

前言:我不是DBA。

我认为MyISAM的主要优点是它实际上会对您指定的字段进行索引,而不是将每个指定的索引编入索引到强制自动生成的主键ID(la InnoDB)。这里的一大优势是,如果你想要包含多个字段的索引,如(pg,en,ru)上的单个索引,MyISAM实际上可以创建一个索引,而不是将每个索引编入id并将三个查找作为较慢的等价。

在您的情况下,如果您只想搜索一个字段,您可能会从MyISAM获得适度的性能提升,因为它只需查看该字段即可检索您的行。 InnoDB将从您的字段中获取ID列表,然后按ID检索行。无论如何,这几乎都是优化的。

如果没有明显的优势,我会做更清洁或更容易的事情。如果您真的想知道答案,可能需要对其进行基准测试。

同样,我不是DBA,所以也许我已经离开这个了!