我正在为我的学习编写一个网络应用程序,其中包括全文搜索和外键。
我在某处读过,MyISAM 引擎适合全文搜索,而 InnoDB 适合外键。
在这种情况下,我应该使用什么引擎以获得最佳性能?
- 为什么 MyISAM 不支持外键关系,而 InnoDB 支持?
- 为什么 MyISAM 支持全文搜索而 InnoDB 不支持?
请告诉我,在这种情况下,我必须使用什么引擎来提高性能?
每个存储引擎的性能将取决于您执行的查询。但是,请注意,同一数据库中的不同表可以使用不同的存储引擎。
为什么 MyISAM 引擎不支持外键关系而 InnoDB 支持?
如外键差异下所述:
在稍后阶段,还将为
MyISAM
表实现外键约束。
因此,外键约束还没有在MyISAM
.
编辑:由于该评论已从文档中删除,看来不再计划在MyISAM
引擎中实现外键约束。
为什么 MyISAM 引擎支持全文搜索而 InnoDB 不支持?
您可以在表上创建
FULLTEXT
索引,并使用语法InnoDB
查询它们。MATCH() ... AGAINST
InnoDB
因此,在MySQL 5.6中已经实现了全文搜索。
I do remember the times when mysql had only myisam and innodedb was in development. MyIsam has no foreign keys because it is old system that does not support relations in database. It will never use foreign keys! To Use it you have innodb. If you don't need all stuff, like relations in DB, use MyISAM to get better performance.