在 sqlite 中递归进行递归计算的替代方案?

发布于 2024-07-20 12:24:54 字数 262 浏览 6 评论 0原文

我目前正在开发一个 iPhone 项目,该项目需要访问存储在本地 sqlite 数据库中的大量分层数据。 更常见的操作之一是计算汇总状态字段。 现在,我通过递归该项目的所有后代(深度可以是 1 到 n 层)来实现这一点。 然而,这最终需要大量的 sql 调用。 iPhone 上的每个 sqlite 调用大约需要 250 毫秒才能完成,最终总共需要大约 7.7 秒的处理时间。 有人建议在不到 O(n) 的时间内做这样的事情吗? 我认为问题的根源是 sql 调用的绝对数量,所以这就是我想要减少的。

I am currently working on a project for the iPhone that requires accessing a large amount of hierarchical data stored in a local sqlite database. One of the more common operations is calculating a rollup status field. Right now, I'm doing that by recursing through all the descendants of that item (which can be anywhere from 1 to n levels deep). However, this ends up requiring a LOT of sql calls. Each sqlite call on an iPhone takes around 250ms to complete, and in the end this adds up to around 7.7 seconds of processing time. Does anyone have any suggestions of doing something like this in less than O(n) time? I think the root of the problem is the sheer number of sql calls being made, so that's what I'm looking to reduce.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温暖的光 2024-07-27 12:24:54

您需要不同的表组织。 查看 管理 MySQL 中的分层数据乔·塞尔科的书

You need a different table organization. Have a look at Managing Hierarchical Data in MySQL or at Joe Celko's book.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文