为了进行全文搜索而在 InnoDB 表中创建记录的镜像表 (MyISAM) 是不好的做法吗?我认为这样我只是在搜索数据的副本,如果该数据发生任何事情,这没什么大不了的,因为它总是可以重新创建。但是,就是觉得很别扭。
(MyISAM 是唯一支持全文搜索的引擎,但我需要使用 InnoDB 提供的外键约束)
我应该避免这种情况吗?
首先,您是否考虑过使用好的搜索索引器?例如 lucene : http://lucene.apache.org/java/docs/将大大加快搜索速度,因为它建立了自己的索引表。
如果您确实想使用内置的 mysql 全文搜索,您可以减少 myisam 表,使其仅包含您要搜索的文本数据和主键 - 然后从普通的 innodb 表中检索正确的数据一次你知道 pkey。这将避免重复表中的其他数据。