sqlite3 视图影响性能?
Posted
技术标签:
【中文标题】sqlite3 视图影响性能?【英文标题】:sqlite3 views affect performance? 【发布时间】:2012-02-14 18:39:29 【问题描述】:试图更好地理解数据库,尤其是 sqlite3:
sqlite3 中的视图主要是一种组织功能,允许将复杂的查询分解为一系列较小的查询;还是视图实际上会影响使用它们的查询的性能?
我注意到视图作为模式的一部分存储在数据库本身中。视图是否存储在磁盘上,随着依赖表的更新而动态更新;还是按需评估?
谢谢。
【问题讨论】:
Red this from a blog post:“尽量避免对您经常访问的数据使用视图。如果您负担得起,请创建临时表并在其中插入数据。这将消除由观点评价。”你可以在这里找到它:katastrophos.net/andre/blog/2007/01/04/…我不知道这是不是真的。 【参考方案1】:视图将始终按需执行(sqlite3 或其他),因此它们返回的结果永远不会持久存储。
至于性能,虽然我不能专门谈论 sqlite3,但通常使用视图的开销会稍微少一些,因为查询解析器/规划器不必在每次执行时重新解析原始 sql。它可以解析一次,存储其执行策略,然后在每次实际运行查询时使用它。
总体而言,您看到的性能提升通常很小。只有当它是您经常执行的快速查询时,它才真正有帮助。如果它是一个不经常执行的慢查询,则与解析查询相关的开销是微不足道的。当然,视图确实提供了很好的组织级别。
【讨论】:
以上是关于sqlite3 视图影响性能?的主要内容,如果未能解决你的问题,请参考以下文章