6

我正在构建应该具有高写入负载和数千甚至数百万表示用户定义/构造的树的分层记录的 Web 应用程序。我不是想用线程建立论坛,而是用数千个小型层次结构(树多达 10-20 个后代)的庞大数据库......

我知道许多用于存储层次结构的模型 - 目前我正在使用嵌套集,但是具有大量数据和负载的性能是个问题。我也怀疑邻接列表或类似的东西可以解决这个问题。

我一直在试验 Mongo 数据库,它是超快的键/值存储,但我只能使用 MySQL。

我想听听其他人遇到类似问题的经历。

4

2 回答 2

5

如果您可以安装 MySQL 插件,那么OQGraph存储引擎就是您所需要的。

于 2011-11-17T14:19:14.010 回答
4

嵌套集合有什么问题?

添加/删除节点时是否重新计算 lft/rgt 值?

可以肯定的是,通过一些仔细的计划,您可以对其进行调整,因此只需要进行罕见的重新计算。我没有实际尝试过,但确实为系统做了一些规划(客户最终不想要系统!)

一是在第一次计算时将这些值乘以 1000。然后,如果您添加一个节点,您可以在值之间插入数字。只有当有大量插入时,您才会开始用完数字。低优先级批处理可以重新计算树以释放数字以进行新插入。

删除也可以通过操纵数字进行存档。事实上,没有孩子的节点很容易。无需重新计算。如果是孩子会变得更复杂,但我认为应该是可行的。

于 2011-11-17T16:49:11.673 回答