【发布时间】:2012-06-10 16:32:28
【问题描述】:
DBMS 是否可以通过仅在支持视图的数据被修改而不是每次我查询视图本身时执行定义视图的查询来优化对视图的访问?
编辑 Android 版 SQLite 呢?
【问题讨论】:
-
数据库管理系统?任何特别是(可能)特定于数据库的。
-
问题是关于通用 DBMS:这是否是一个共同特征
标签: android optimization database
DBMS 是否可以通过仅在支持视图的数据被修改而不是每次我查询视图本身时执行定义视图的查询来优化对视图的访问?
编辑 Android 版 SQLite 呢?
【问题讨论】:
标签: android optimization database
德拉米尔,
您的问题的答案很大程度上取决于您对视图、数据库查询和底层结构的实现。本质上,核心问题是数据的性质以及需要多久被请求一次。
在我发布的一些应用程序中,我的数据只有在 Window 获得焦点时才需要查询。在这些情况下,调用简单的手动刷新。这些通常是原子查询,这意味着它们是极少量的数据。使用这种方法,我将许多应用程序及其数据桥接到了一个几乎是即时的查询中。
在其他情况下,数据会经常更改,但可以预见。在这些情况下,减少查询数量会适得其反,但绑定观察者也是无效的。
最后,有几种情况,数据会发生不规律的变化,变化的量是不可预测的。在这些情况下,最佳解决方案是使用观察者。这将确保只运行需要运行的查询。并且视图将在适配器更新后立即更新。
关于您的问题,最后一个场景(我认为)传达了您的要求。简而言之,答案是肯定的……*但是……*指的是前两种情况。要决定适合自己的最佳解决方案,您需要回答以下问题:
您在任何给定时间查询多少数据?
该数据多久会更改一次?
会在您的应用运行时更改吗?
获得这些问题的答案后,您可以相应地调整您的解决方案。如果没有更多信息,这就是您可能会收到的指导范围。我还强烈建议,如果您不熟悉基本的数据库工程概念,请先熟悉规范化、关系模型和索引的概念。深入了解这些可以极大地提高您的数据库、应用程序和相应视图的性能。
希望对你有帮助,
模糊逻辑
【讨论】: