0

具有诸如tid(int) zid(int) direction(tinyint) type(tinyint)具有相当繁重的读写操作以及加入 myisam 中的其他表的列的表是否更好地在 myisam 或 innodb 中进行引擎?

有人告诉我,innodb 的写入性能比 myisam 差。真的吗?并且每当不使用主键提取数据时,innodb 也具有类似 myisam 的表锁。是否有任何技术可用于使用 myisam 和 innodb 连接表之间的表?

4

1 回答 1

1

默认情况下,您应该始终使用 InnoDB。它更快;它支持事务、外键和行级锁定;它对崩溃的容忍度更高——总而言之,它比 MyISAM 好得多。

在某些情况下可能需要 MyISAM 表。两种常见的是:

  • 您使用的是不支持全文或地理空间索引的旧版本 MySQL,您需要启用这些功能。

    (请注意,如果您使用全文索引,通常最好还是使用外部搜索引擎,例如 Sphinx——MySQL 的全文搜索并不是特别好。)

  • 您有一些具有不寻常数据访问模式的表(特别是非常大的只写表,例如日志),它们有时可以在 MyISAM 下执行得更好。

但是,除非您确定这些条件适用,否则您应该使用 InnoDB。这几乎总是正确的选择。

于 2013-02-20T03:53:55.523 回答