显然两者都有其好处。MyISAM速度快但容易受损,InnoDB虽然慢但由于事务和外键更稳定。因此,在一个数据库中混合使用这两个引擎可能是不错的选择。如果可以的话?
显然两者都有其好处。MyISAM速度快但容易受损,InnoDB虽然慢但由于事务和外键更稳定。因此,在一个数据库中混合使用这两个引擎可能是不错的选择。如果可以的话?
CREATE TABLE MyISAM_tbl(
....
)ENGINE=MyISAM;
CREATE TABLE InnoDB_tbl (
....
)ENGINE=InnoDB;
我经常这样做,因为我更喜欢在外键中使用InnoDB引擎,但有时需要用MyISAM引擎进行全文搜索。从未遇到过问题。
简而言之, 是的。(CREATE TABLE 允许您指定引擎类型。)
然而,当您跨多个表类型查询时,必须小心处理。(例如,您无法利用 MyISAM 上的外键,也无法提交影响 MyISAM 表的事务等。)
本质上,我怀疑这可能不是最好的方法。(除非您只需要针对一组从数据库其余部分分段的表进行事务处理,且 InnoDB 太慢,则获取更快的数据库服务器可能会更轻松。)