测验:性能与执行计划
关于 EXPLAIN 的成本值,以下哪项是正确的?
- 这是转换为毫秒的预期执行时间。
- 它是一个任意单位,将连续页面读取的数量设置为 1.0,并且仅对于比较同一查询的计划候选者有意义。
- 估计要读取的行数
- 这是预期的内存使用量
阅读行动计划时最重要的信号是什么?
- Seq Scan节点的存在
- 预期行与实际行之间的差异
- 成本绝对值
- 节点数
实际时间=0.008..0.011行=4个循环=52310的节点的实际总贡献时间是多少?
- 大约 575 毫秒
- 约0.011ms
- 约4毫秒
- 计划里是这么写的
Hash节点显示为Batches: 32、最有效的措施是什么?
- 向连接列添加索引
- 使用 ANALYZE 更新统计数据
- 增加会话的work_mem
- 更改查询中的连接顺序
Filter 和 Index Cond 在规划中有何区别?
- 是一样的,只是表示法不同
- 过滤总是更快
- 没有索引时显示索引条件。
- Filter 读取该行并将其丢弃,而 Index Cond 首先不读取它。
同样的查询昨天花了 20 毫秒,今天花了 900 毫秒。计划是一样的。首先要检查什么?
- 缓冲区的共享读取率(发送到磁盘的块,因为它们不在缓存中)
- 最后统计更新时间
- 目标表上索引的数量和类型
- 会话的事务隔离级别
使用 EXPLAIN ANALYZE 分析 UPDATE 语句时必须做什么?
- 在只读副本上运行
- 添加限制
- 将其包装在事务中并回滚
- 将 SAFE 添加到选项