我正在构建应该具有高写入负载的Web应用程序以及表示用户定义/构造树的数千甚至数百万个分层记录。我不是试图用线程构建论坛,而是用数千个小型层次结构构建庞大的数据库(树木最多有10-20个后代)......
我知道存储层次结构的许多模型 - 目前我使用的是嵌套集,但是具有大量数据和负载的性能是个问题。我也怀疑邻接列表或类似的东西可以解决这个问题。
我一直在试验Mongo数据库,它是超高速键/值存储,但我只能使用MySQL。
我想了解其他人遇到类似问题的经历。
答案 0 :(得分:5)
如果您可以安装MySQL插件,那么OQGraph存储引擎就是您所需要的。
答案 1 :(得分:4)
嵌套集有什么问题?
添加/删除节点时是否重新计算lft / rgt值?
通过一些仔细的计划非常肯定,你可以调整它,所以只需做罕见的重新计算。我没有尝试过它,但确实做了一次系统规划(客户端最终不想要系统!)
一,在首次计算时,将这些值乘以1000。然后,如果添加节点,则只需在值之间插入数字即可。只有当插入次数很多时,才开始耗尽数字。低优先级批处理过程可以重新计算树以释放数字以进行新插入。
删除也可以通过操纵数字进行存档。实际上,没有孩子的节点很容易。没有重新计算。如果孩子们变得更复杂,但我认为应该是可行的。