为什么MySQL的MyISAM引擎不支持外键?

Muk*_*san 34 mysql database myisam innodb

我正在为我的学习编写一个网络应用程序,其中包括全文搜索和外键.

我在某处读过,MyISAM引擎适用于全文搜索,而InnoDB适用于外键.

在这种情况下,我应该使用什么引擎才能获得最佳性能?

  • 为什么MyISAM不支持外键关系,但InnoDB呢?
  • 为什么MyISAM支持全文搜索,但InnoDB不支持?

egg*_*yal 42

  1. 请告诉我,在这种情况下,我必须使用什么引擎来提高性能?

    每个存储引擎的性能取决于您执行的查询.但是,请注意同一数据库中的不同表可以使用不同的存储引擎.

  2. 为什么MyISAM引擎不支持外键关系和InnoDB呢?

    外键差异所述:

    在稍后阶段,也将对MyISAM表实现外键约束.

    因此,外键约束尚未实施MyISAM.

编辑:当该评论从文档中删除时,似乎不再计划在MyISAM引擎中实现外键约束.

  1. 为什么MyISAM引擎支持全文搜索而InnoDB不支持?

    MySQL 5.6中的新功能所述:

    您可以FULLTEXTInnoDB表上创建索引,并使用MATCH() ... AGAINST语法查询它们.

    因此,InnoDB从MySQL 5.6 开始实现全文搜索.

  • 我没有看到引用"在稍后阶段,也将为MyISAM表实现外键约束." 在MySQL文档中.也许这个功能没有路线图? (3认同)