是一个包含像tid(int) zid(int) direction(tinyint) type(tinyint)
这样的列的表,具有非常繁重的读写操作,以及加入myisam中的其他表,最好是引入myisam或innodb吗?
有人告诉我,innodb的写入性能比myisam差。真的吗?每当没有用主键提取数据时,innodb也会像myisam一样拥有表锁。是否有任何技术可用于使用myisam和innodb在表之间连接表?
答案 0 :(得分:1)
默认情况下,您应该始终使用InnoDB。它更快;它支持事务,外键和行级锁定;它更容忍崩溃 - 全能,它比MyISAM好得多。
在某些情况下,可能需要MyISAM表。两个常见的是:
您使用的是旧版本的MySQL,它不支持全文或地理空间索引,您需要启用这些功能。
(注意,如果 使用全文索引,那么通常最好使用Sphinx之类的外部搜索引擎--MySQL的全文搜索不是特别好。)
您有一些具有异常数据访问模式的表(特别是非常大的只写表,例如日志),有时在MyISAM下可以表现得更好。
除非您确定这些条件适用,否则您应该使用InnoDB。这几乎总是正确的选择。