sqlite3视图会影响性能吗?

时间:2012-02-14 18:39:30

标签: sql sqlite views

尝试更好地理解数据库,尤其是sqlite3:

sqlite3中的视图主要是组织功能,允许将复杂查询分解为一系列较小的查询;或者视图是否会影响使用它们的查询的性能?

我注意到视图作为模式的一部分存储在数据库本身中。视图是否存储在磁盘上,并在更新依赖表时动态更新;或者他们是否按需评估?

感谢。

1 个答案:

答案 0 :(得分:12)

视图将始终按需执行(sqlite3或其他),因此返回的结果永远不会永久存储。

至于性能,虽然我不能专门与sqlite3说话,但通常使用视图会略微减少开销,因为查询解析器/规划器在每次执行时都不必重新解析原始sql。它可以解析一次,存储其执行策略,然后在每次实际运行查询时使用它。

在宏观方案中,你所看到的性能提升通常很小。如果它是一个经常执行的快速查询,它真的有用。如果您的查询很慢,则不经常执行,与解析查询相关的开销是微不足道的。当然,观点确实提供了一个很好的组织层次。