我想在我的应用程序中使用两个MySQL数据库特性。第一个是全文搜索和事务。
现在,这里的困境是我不能在一个存储引擎中获得这个功能。要么我使用MyIsam (它具有全文搜索功能),要么我使用InnoDB (它支持事务功能)。我不能两者兼得。
我的问题是,在我被迫在两个存储引擎之间做出选择之前,有没有办法在我的应用程序中同时拥有这两个功能。
发布于 2011-11-26 02:34:21
可能的解决方法:
发布于 2011-11-26 02:28:22
如果需要在MySQL中对单个表执行事务和全文,您有几个选择。但是,从整个讨论中真正值得注意的一点是,数据库从一开始就不擅长全文搜索(尤其是MySQL!)理想情况下,您希望将此工作卸载到更擅长执行此类任务的组件。
选项1:
创建一个需要作为InnoDB执行事务的表,然后创建另一个“镜像”表,即MyISAM,您可以对其执行全文搜索。您可以通过在InnoDB表上使用触发器来保持数据同步。这是一种技巧,但它会起作用的。
选项3:
看看第三方全文引擎,如Sphinx、Lucene或Solr。这样,您就可以专注于设计数据库,使其在查询数据时达到最佳状态,而不是强迫它进行文本搜索。
选项3:
您可以选择使用同时支持事务和全文搜索的其他数据库服务器,如SQL Server。
希望这篇文章能让你明白一些。
享受吧!
发布于 2011-11-26 04:22:48
MyISAM全文索引可能没有您想象的那么好。它在小数据上还行,但在大数据上就差了。
在MySQL 5.6中,我们可以在InnoDB上使用全文,但它仍然不支持真正的全文搜索引擎所具有的大多数功能。
https://stackoverflow.com/questions/8272917
复制相似问题