gpt4 book ai didi

php - MySQL存储引擎困境

转载 作者:可可西里 更新时间:2023-11-01 06:34:51 26 4
gpt4 key购买 nike

我想在我的应用程序中使用两个 MySQL 数据库功能。第一个是 FULL-TEXT-SEARCH 和 TRANSACTIONS。

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

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

最佳答案

可能的解决方法:

  1. 使用 Sphinx 或 Solr 或其他一些外部文本搜索引擎进行文本搜索,并使用 InnoDB 引擎。

  2. 编写您自己的搜索代码 - 并使用 InnoDB。这不是一个真正的选择,除非您的搜索需求有限或预算巨大。

  3. 同时使用引擎,MyISAM 和 InnoDB。将要进行全文搜索的列保留在 MyISAM 中,其余列保留在 InnoDB 中。这将是有风险的,因为 MyISAM 中的数据不是事务安全的。

  4. 同时使用引擎,MyISAM 和 InnoDB。将所有数据保存在 InnoDB 中,将要进行全文搜索的列复制到 MyISAM 中。这将需要一些机制(触发器)来复制数据。

  5. 等待 InnoDB 或其他事务引擎支持全文搜索的 MySQL 版本。

  6. (选项 4)但使用具有“崩溃安全”(但仍然不是事务安全)全文索引的 MariaDB(MySQL 分支):When-will-transactional-fulltext-indexes-be-ready?

  7. 使用其他 RDBMS,例如在事务引擎中具有全文支持的 PostgreSQL。

关于php - MySQL存储引擎困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com