首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >数据库设计:非常有层次的数据;用于处理的服务器外的子集缓存;小到中等大小;(完全初学者)

数据库设计:非常有层次的数据;用于处理的服务器外的子集缓存;小到中等大小;(完全初学者)
EN

Stack Overflow用户
提问于 2019-06-06 05:34:41
回答 1查看 34关注 0票数 0

我发现自己有一个项目(非常轻松,失败后几乎没有任何后果),我认为需要某种数据库来解决。问题是,虽然我总体上仍然相当缺乏经验,但除了我可以用Google挖掘的教程和设置普通的家庭云之外,我从来没有接触过任何数据库。我把自己困在不知道我不知道的事情上。

这就是情况:

数百个不同的自动化测试系统将通过缓慢的网络频繁地将少量数据写入数据库。然后,很少有用户会通过慢速网络从数据库中获取大量数据子集。然后将处理数据,这将需要大量读取,此时需要非常高的性能。

这将是数据(按大小的顺序):

  • 1000产品包含包含
  • 10变体的
  • 100批次包含包含测试的
  • 100对象<代码>H1910测试系统containing
  • 100测试步骤containing
  • 10条目<代码>H214<代码>F215

它基本上是一个带有标签的B-树,将测试步骤作为叶节点(因为它们的格式已经标准化)。

一个批次将始终属于一个变体,一个对象将始终属于同一个变体(但可能是多个批次),而一个变体将始终属于一个产品。有成千上万个不同的测试步骤。

可能的查询将尝试获取(例如):

批处理中的所有内容(可选:以及range)

  • Everything中条目的值来自a variant
  • 来自名为Z

的测试系统中类型X和Y的所有测试步骤

据我所知,数十万列的宽度(包括上述所有内容)似乎不是一个好主意,大约1万亿行也不是一个好主意(两者之间的中间地带似乎仍然相当极端)。

我真的很想利用数据的层次化性质,但我在嵌套数据库之类的东西上找到的东西就是,它们根本不是一件东西。

如果你能帮我的话就太好了:

  1. What to search
  2. 什么是构建和存储此数据的好方法
  3. 一些地方我可以学习如何避免SQL的恐怖故事即使我已经找到了很多
  4. 如果有我应该知道的传输查询数据并将其缓存到本地以便处理

的好方法/最佳实践<代码>G233

谢谢,祝你有愉快的一天

安德烈亚斯

EN

回答 1

Stack Overflow用户

发布于 2019-06-06 05:47:57

SQL搜索"database normalization".

  • A normalized relational是一个很好的结构。

  • 如果你想避免

  • 的恐怖,你也可以尝试No-SQL Document-oriented Database,比如MongoDB。实际上,在很多情况下我更喜欢这种类型的数据库。

  • 数据库将缓存您的查询结果,当然,无论您使用哪个工具来查询数据库,它都会将数据缓存到工具的内存中(或者,如果结果的数量非常大,它将至少缓存查询结果的一个子集)。您还可以将结果写入文件。“缓存”的方法有很多,它们在不同的情况下都很有用。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56468327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档