1

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?

4

1 回答 1

0

德拉米尔,

您的问题的答案很大程度上取决于您对视图、数据库查询和底层结构的实现。本质上,核心问题是数据的性质以及需要多久重新查询一次。

在我发布的一些应用程序中,我的数据只有在 Window 获得焦点时才需要查询。在这些情况下,调用简单的手动刷新。这些通常是原子查询,这意味着它们是极少量的数据。使用这种方法,我将许多应用程序和它们的数据桥接在一起,形成一个有凝聚力的几乎即时的查询。

在其他情况下,数据会经常变化,但可以预见。在这些情况下,减少查询数量会适得其反,但绑定观察者也是无效的。

最后,还有几种情况,数据会发生不规则的变化,而且变化的量是不可预测的。在这些情况下,最佳解决方案是使用观察者。这将确保只运行需要运行的查询。一旦适配器更新,视图就会更新。

关于您的问题,最后一个场景(我认为)传达了您的要求。简而言之,答案是肯定的.... *但是... *指的是前两种情况。要决定适合自己的最佳解决方案,您需要对以下问题有答案:

  1. 您在任何给定时间查询多少数据?

  2. 该数据多久会更改一次?

  3. 你的应用程序运行时它会改变吗?

一旦你有了这些问题的答案,你就可以相应地调整你的解决方案。如果没有更多信息,这就是您可能会收到的指导范围。我还强烈建议,如果您不熟悉基本的数据库工程概念,请先熟悉规范化、关系模型和索引的概念。深入了解这些可以极大地提高数据库、应用程序和适当视图的性能。

希望这可以帮助,

模糊逻辑

于 2012-06-08T13:26:22.250 回答