Merge MySQL合并InnoDb和MyiSAM表

Merge MySQL合并InnoDb和MyiSAM表,merge,innodb,sync,myisam,full-text-search,Merge,Innodb,Sync,Myisam,Full Text Search,我正在为一些数据创建一个小型搜索引擎,需要使用MyiSAM,因为它具有全文搜索功能。不幸的是,我还需要使用事务进行提交和回滚,以确保输入要搜索的数据 我创建了一个用于数据存储的InnoDb表(因为它可以执行提交和回滚),以及一个MyiSAM表,它是用于全文搜索的InnoDb表的精确副本。现在的问题是保持这些表同步 我正在寻找一种使MyiSAM表与InnoDb表保持同步的有效方法。我不能使用触发器,因为在数据提交到InnoDb表之前,我不希望在MyiSAM表中存储任何内容 我可以编写一些在提交时同

我正在为一些数据创建一个小型搜索引擎,需要使用MyiSAM,因为它具有全文搜索功能。不幸的是,我还需要使用事务进行提交和回滚,以确保输入要搜索的数据

我创建了一个用于数据存储的InnoDb表(因为它可以执行提交和回滚),以及一个MyiSAM表,它是用于全文搜索的InnoDb表的精确副本。现在的问题是保持这些表同步

我正在寻找一种使MyiSAM表与InnoDb表保持同步的有效方法。我不能使用触发器,因为在数据提交到InnoDb表之前,我不希望在MyiSAM表中存储任何内容

我可以编写一些在提交时同步表的代码,但是我不确定是否有一种快速的方法来组合这两个表。这些表可能非常庞大,我不希望用户等待一个小时来插入一条记录。在相同的上下文中,我不希望用户在一天中的某个时间一小时内无法访问搜索引擎,因为cron作业会同步两个表并锁定MyiSAM表

还有一件事要提的是,我的MySQL服务器在Bluehost上,因此MySQL被锁定在5.1版上,所以我不能在5.6版上使用新的InnoDb全文搜索。当然,我不能在Bluehost上安装任何第三方搜索服务器,如sphinx


如果有人能很好地解决我的问题,我将不胜感激。

这是一个老问题,但对于在搜索中遇到这个问题的人来说:InnoDB表支持从MySQL 5.6.4开始的全文索引。

我有一个小小的解决办法

  • 设置MySQL复制
  • 论主人
    • 在MyISAM表上删除全文索引
    • 将MyISAM表转换为InnoDB
  • 论奴隶
    • 将InnoDB表转换回MyISAM
    • 在MyISAM表上重新创建全文索引
  • 前进

    • 在主机上执行所有插入、更新和删除操作
    • 在从属服务器上执行所有全文搜索
    我曾建议: