gpt4 book ai didi

sql - 适用于小型文档/记录、不变数据、大量写入、快速读取的最佳(NoSQL?)数据库?

转载 作者:行者123 更新时间:2023-12-04 08:53:01 25 4
gpt4 key购买 nike

我发现了一些与此类似的问题,但它们没有包含关于存储数据的性质、查询方式等的太多细节......所以我认为这值得发布。

我的数据很简单,三个字段:
- “日期时间戳”值(日期/时间)
- 两个字符串,“A”和“B”,均 < 20 个字符

我的应用程序写入量很大(每秒数百次)。所有写入都是新记录;一旦插入,数据永远不会被修改。

定期读取每隔几秒钟发生一次,用于填充一些近实时的仪表板。我查询日期/时间值和字符串值之一。例如获取日期时间戳在特定范围内且字段“B”等于特定搜索值的所有记录。这些查询通常每个都会返回几千条记录。

最后,我的数据库不需要无限增长;如果数据库支持,我将通过手动删除或使用缓存到期技术来清除 10 天以上的记录。

我最初在 MongoDB 中实现了这一点,但没有意识到它处理锁定(写入块读取)的方式。随着我的扩展,我的查询花费的时间越来越长(即使使用正确的索引,现在也需要 30 多秒)。现在根据我所学到的,我相信大量的写入正在耗尽我的读取。

我已阅读 kkovacs.eu发布比较各种 NoSQL 选项,虽然我学到了很多,但我不知道我的用例是否有明显的赢家。我非常感谢熟悉这些选项的人的推荐。

提前致谢!

最佳答案

我以前在记录过程控制测量的系统中遇到过这样的问题。这是通过 5 MHz IBM PC 完成的,因此绝对有可能。用例更加多样化——按分钟、小时、八小时轮类、日、周、月或年进行汇总——因此系统记录了所有原始数据,但也针对最常见的查询进行了动态汇总(这是五分钟的平均值)。就仪表板而言,五分钟聚合似乎也是一个主要目标。

也许这可以通过为每个输入流编写一对文本文件来解决:一个包含所有原始数据;另一个与多分钟聚合。仪表板将忽略原始数据。当然,可以使用数据库来做同样的事情。但是简化应用程序可能意味着不需要 RDB。更易于设计和维护,更易于安装在微 Controller 、嵌入式系统等上,或者在共享主机上成为更友好的邻居。

关于sql - 适用于小型文档/记录、不变数据、大量写入、快速读取的最佳(NoSQL?)数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610598/

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