服务器“每个标准”(1)在幕后使用写时与读时优化(2)吗?例如,由于日志记录频繁运行查询?
运算次数的计算是否需要一位经验丰富的计算机科学家的仔细研究?

发布于 2015-01-22 13:25:12
据我所知,没有任何数据库能完全自动完成这一任务。大多数查询都比select sum(T)复杂得多,所以在一般情况下,如果不是不可能的话,弄清楚如何增量更新以前的结果是不切实际的(将select hash(sum(T))作为一个微不足道的例子)。甚至在可能的情况下,这也不一定有帮助;根据应用程序的不同,将插入性能交换为select性能可能不符合您的最佳利益。
也就是说,许多RDBMS正是以物化意见的形式提供这种行为的(例如,在带有快速刷新选项的甲骨文中,或者在SQL Server中有索引视图)。只要视图的定义遵循严格的约束条件--而且您的select sum(T)当然有资格--他们就会自动更新这个结果,并尽可能地在其他查询中使用它。
在大多数其他RDBMS(如Postgres)中,同样的结果是可以实现的,尽管用户需要付出一些额外的努力。通过在T上创建触发器,您可以自动更新Tsum,并直接查询它。
https://stackoverflow.com/questions/28086055
复制相似问题