gpt4 book ai didi

sql - NoSQL 是这个特定数据库问题的最佳选择吗

转载 作者:可可西里 更新时间:2023-11-01 10:44:55 26 4
gpt4 key购买 nike

我有一个问题,我认为 NoSQL 解决方案是答案,但我不确定。此外,我不确定哪种类型的 NoSQL 数据库(对象、文档、图形、键等)最适合解决此问题。

问题:

我有两个收藏。 CollectionA 包含 2K+ 个字符串(域名)。 CollectionB 更大,看起来(伪)像这样:

{
"To" : "address1@address1.com,address2@address2.com,there_could_be_100@more_address.com",
"Bcc" : "address1@address1.com,address2@address2.com,there_could_be_100@more_address.com",
"From" : "address1@address1.com,address2@address2.com,there_could_be_100@more_address.com",
"Subject" : "Email Subject",
"Unknown" : "NumberOfFields",
"N" : "PlusOneExtraFields",
}

已知:

  1. 收件人、密件抄送和发件人字符串中可以列出数百人。
  2. 我没有分解收件人、发件人、密件抄送字段的好方法。
  3. 由于无法分解收件人、发件人、密件抄送字段,我不得不搜索字符串。
  4. 有一些已知的领域,但有很多未知的领域。
  5. 要求目前不需要搜索未知字段。
  6. 数据库引擎需要在 windows 桌面上运行。

目前的思路:

使用 NoSQL 解决方案和也许 C# 动态关键字?

模糊

  1. 这是文档数据库可以轻松解决的问题吗?

  2. 在这种类型的数据结构中搜索/比较是否适用于 Map/Reduce?

最佳答案

我完全同意@HighTechRider,如果数据量与您暗示的一样大,那么在这种情况下,数据的非规范化(如您所说的那样爆炸)似乎是高性能查询所必需的,否则您使用什么产品都没有关系选择,它最终将成为某种时尚或其他时尚的自由文本扫描。

@chx 对 Sphinx 的建议,至少在加速后者方面似乎是合理的。但这条路线存在隐藏成本 - 需要您捆绑、安装、管理、修补、更新等其他人的服务以及您的软件。

最小化索引和查询中的桌面资源消耗必须是高优先级的,而在桌面上设置自由文本服务器似乎有点违背了这一原则。

我将从任一基本文件系统开始——使用文件系统对象来表示您的非规范化数据。或者,如果表示和执行您的查询似乎过于复杂,请先查看简单的嵌入式表库,如 SQLite 或 SQL Compact 版本,然后再尝试将更奇特的服务器目标产品放到桌面上。

SQLite 与 SQL Compact Edition 的比较:

http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.compactframework/2005-12/msg00019.html

SQLite 还可以创建自由文本索引,以覆盖您将来的一些“未知字段”场景。

至于 map-reduce,它的策略对您正在接近的域有效。

关于sql - NoSQL 是这个特定数据库问题的最佳选择吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4589918/

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