标签: iphone sqlite recursion time-complexity
我目前正在开发一个iPhone项目,需要访问存储在本地sqlite数据库中的大量分层数据。一种更常见的操作是计算汇总状态字段。现在,我通过递归遍历该项目的所有后代(可以是从1到n级别的任何位置)来做到这一点。但是,这最终需要大量的SQL调用。 iPhone上的每个sqlite调用大约需要250毫秒才能完成,最终这会增加大约7.7秒的处理时间。有没有人建议在不到O(n)的时间内做这样的事情?我认为问题的根源是正在进行的sql调用的数量,所以这就是我希望减少的。
答案 0 :(得分:2)
您需要一个不同的表组织。请查看Managing Hierarchical Data in MySQL或Joe Celko's book。