is it true that a DBMS can optimize the access to a View by performing the query that defines the View only when the data that is backing the View is modified and not everytime I query the View itself?
EDIT What about SQLite for Android?
is it true that a DBMS can optimize the access to a View by performing the query that defines the View only when the data that is backing the View is modified and not everytime I query the View itself?
EDIT What about SQLite for Android?
德拉米尔,
您的问题的答案很大程度上取决于您对视图、数据库查询和底层结构的实现。本质上,核心问题是数据的性质以及需要多久重新查询一次。
在我发布的一些应用程序中,我的数据只有在 Window 获得焦点时才需要查询。在这些情况下,调用简单的手动刷新。这些通常是原子查询,这意味着它们是极少量的数据。使用这种方法,我将许多应用程序和它们的数据桥接在一起,形成一个有凝聚力的几乎即时的查询。
在其他情况下,数据会经常变化,但可以预见。在这些情况下,减少查询数量会适得其反,但绑定观察者也是无效的。
最后,还有几种情况,数据会发生不规则的变化,而且变化的量是不可预测的。在这些情况下,最佳解决方案是使用观察者。这将确保只运行需要运行的查询。一旦适配器更新,视图就会更新。
关于您的问题,最后一个场景(我认为)传达了您的要求。简而言之,答案是肯定的.... *但是... *指的是前两种情况。要决定适合自己的最佳解决方案,您需要对以下问题有答案:
您在任何给定时间查询多少数据?
该数据多久会更改一次?
你的应用程序运行时它会改变吗?
一旦你有了这些问题的答案,你就可以相应地调整你的解决方案。如果没有更多信息,这就是您可能会收到的指导范围。我还强烈建议,如果您不熟悉基本的数据库工程概念,请先熟悉规范化、关系模型和索引的概念。深入了解这些可以极大地提高数据库、应用程序和适当视图的性能。
希望这可以帮助,
模糊逻辑