繁体   English   中英

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

[英]Why doesn't MySQL's MyISAM engine support Foreign keys?

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

我读过某个地方,MyISAM引擎适合全文搜索,InnoDB适合外键。

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

  • 为什么MyISAM不支持外键关系而InnoDB支持呢?
  • 为什么MyISAM支持全文搜索,但是InnoDB不支持全文搜索?
  1. 请告诉我,在这种情况下,我必须使用哪种引擎来提高性能?

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

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

    如“ 外键差异”中所述

    在稍后的阶段,还将为MyISAM表实现外键约束。

    因此,在MyISAM根本没有实现外键约束。

编辑 :由于该评论已从文档中删除,因此似乎不再计划在MyISAM引擎中实现外键约束。

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

    《 MySQL 5.6新增功能》中所述

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

    因此,从MySQL 5.6开始,全文搜索已在InnoDB实现。

我确实记得mysql只有myisam和innodedb在开发中的时代。 MyIsam没有外键,因为它是旧系统,不支持数据库中的关系。 它永远不会使用外键! 要使用它,您需要innodb。 如果您不需要所有东西,例如数据库中的关系,请使用MyISAM获得更好的性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM