sql - SQL中的查询优化
问题描述
我必须优化几个查询的物理设计。我尝试了几种技术,例如索引或集群,但在大多数查询中,就一致获取而言,最佳选择是创建物化视图。有什么理由不选择物化视图来优化查询?因为如果我们可以只使用物化视图优化所有查询,一切都会变得更容易和更快。
解决方案
您可以使用物化视图进行优化。根据我的经验,它们有一个主要缺点:时间。物化视图并非全部同时更新。
因此,您认为可能相关的不同表可能会丢失行。举个简单的例子,你可能有一个从 T1 到 T2 的外键关系。但是,T2在 T1之前实现。然后,当 T1 物化时,一些外键值可能会丢失。我花了很多时间来处理由此引起的问题。
有一些方法可以对此进行调整。例如,所有行都可以具有创建日期,而物化视图可以将行限制为仅在前一小时边界内创建或更新的行。
在性能和维护方面还有其他问题。例如,您的数据库负载可能会转向物化视图。或者视图可能由于底层架构更改而失败。但是,一旦您制定了流程,您可能会发现这些流程非常易于管理。
推荐阅读
- apk - × 构建失败如何解决。独立构建失败!在安卓博览会?
- xslt - 如何在 XSLT 中为属性使用多个值
- python - 通过java执行python代码将日志保存到文件
- java - DB2 中使用 INTERSECT 的交集
- node.js - EXPRESS : 如何防止 Fetch() 用缓存的响应进行响应
- linux - 用 awk 剪切我的 FILENAME 变量的输出?
- ios - 如何修复错误:“应用标识符“com.example.apple-samplecode.BreakfastFinder”无法注册到您的开发团队。
- regex - RegEx Pattern - 如何从一行中提取 N 元素?
- haskell - Haskell String to List String 按空格分割
- docker - 使用持久注册表文件在 Kubernetes 中运行 Filebeat?