加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – MySQL存储引擎的困境

发布时间:2020-12-13 18:18:24 所属栏目:PHP教程 来源:网络整理
导读:我想在我的应用程序中使用两个 MySQL数据库功能.第一个是全文搜索和交易. 现在,这里的困境是我无法在一个存储引擎中获得此功能.我要么使用MyIsam(具有FULL-TEXT-SEARCH功能),要么使用InnoDB(支持TRANSACTION功能).我不能兼得. 我的问题是,无论如何,在我被迫
我想在我的应用程序中使用两个 MySQL数据库功能.第一个是全文搜索和交易.

现在,这里的困境是我无法在一个存储引擎中获得此功能.我要么使用MyIsam(具有FULL-TEXT-SEARCH功能),要么使用InnoDB(支持TRANSACTION功能).我不能兼得.

我的问题是,无论如何,在我被迫在两个存储引擎之间做出选择之前,我可以在我的应用程序中同时拥有这两个功能.

可能的解决方法:

>使用Sphinx或Solr或其他一些外部文本搜索引擎进行文本搜索并使用InnoDB引擎.
>编写自己的搜索代码 – 并使用InnoDB.这不是一个真正的选择,除非您的搜索需求有限或您的预算很大.
>使用两个引擎,MyISAM和InnoDB.保留您想要在MyISAM中进行全文搜索的列,其余的在InnoDB中.这将是有风险的,因为MyISAM中的数据不是交易安全的.
>使用两个引擎,MyISAM和InnoDB.将所有数据保存在InnoDB中,并复制要在MyISAM中进行全文搜索的列.这将需要一些机制(触发器)来进行数据复制.
>等待InnoDB或其他事务引擎支持全文搜索的MySQL版本.
>(选项4)但使用具有“崩溃安全”(但仍然不是事务安全)全文索引的MariaDB(MySQL fork):When-will-transactional-fulltext-indexes-be-ready?>使用PostgreSQL之类的其他RDBMS,它在事务引擎中具有全文支持.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读