gpt4 book ai didi

mysql - 全文检索数据库和超过 2 亿条记录

转载 作者:可可西里 更新时间:2023-11-01 10:16:06 25 4
gpt4 key购买 nike

我即将创建一个至少包含 2 亿个条目的庞大数据库。数据库需要可以使用全文进行搜索,并且速度应该很快。

我的数据库从许多不同的数据源获取数据,我需要定期导入新的或更新的数据。

将我的所有数据存储在像 mysql 这样的关系数据库中然后创建一个 nosql 文档数据库(例如 mongodb 或 elasticsearch)只是为了搜索的目的是个好主意,还是不会提供任何好处可靠性和防止冗余信息?

最佳答案

我认为将主要记录保存在 SQL 数据库中并将它们复制到 noSQL 数据库是一种非常常见的方法。

ElasticSearch 有一个关于其 resiliency 的持续状态页面.即使在最新版本中,ElasticSearch 也会丢失 a number of different situations 中的数据. ElasticSearch 索引结构的重大变化(例如添加分析器)需要您 re-index所有文件。如果您有其他文档来源,此过程会更安全。归根结底,ElasticSearch 并非设计用于一致地存储文档 - 我只会在偶尔的数据丢失不是灾难的情况下选择使用 ElasticSearch 作为主要存储。

与 ElasticSearch 不同,MongoDB 被设计为 resilient .您应该能够在 MongoDB 中安全地存储文档。我发现尝试在 MongoDB 中进行全文搜索可能有点痛苦,至少与 ElasticSearch 相比是这样。在我看来,对于文本搜索,MongoDB 相对于 MySQL 的唯一优势 FULLTEXT是它是分布式的。

我们现在正在运行 ElasticSearch 和 MySQL - 其好处大大超过了额外基础设施和处理两者之间复制的麻烦。我们之前曾尝试使用 noSQL 解决方案作为主要数据存储,但结果是灾难性的。将 ES 与 MySQL 结合运行可以让您两全其美 - SQL 中数据的一致性和安全性,以及 ES 中可扩展、有效的全文搜索。

关于mysql - 全文检索数据库和超过 2 亿条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42924810/

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