小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ
Alexander Ioffe:Postgres 让你的查询恰好快五次,然后它就变卦了。一条预处理语句,在同一连接上运行十二次 EXPLAIN ANALYZE,第六次执行时计划发生改变,以及为什么单次运行永远无法揭示这一点。

PostgreSQL 的 plan_cache_mode=auto 会先执行五次自定义计划,第六次若通用计划估算成本更低则切换。对拥有 80 万订单的大租户,通用计划误估为 216 行,改用嵌套循环并触发 320 万次缓冲命中,查询从 274 毫秒骤增至 2319 毫秒。单次 EXPLAIN 无法发现,需在同一连接重复运行并保留每次计划。修复方法是设置 plan_cache_mode=force_custom_plan。

Alexander Ioffe:Postgres 让你的查询恰好快五次,然后它就变卦了。一条预处理语句,在同一连接上运行十二次 EXPLAIN ANALYZE,第六次执行时计划发生改变,以及为什么单次运行永远无法揭示这一点。

Planet PostgreSQL Planet PostgreSQL · 2026-09-11T00:00:00Z

本文介绍SQLite查询计划器:通过EXPLAIN QUERY PLAN区分SEARCH/SCAN访问路径;ANALYZE写入sqlite_stat1统计信息,无统计时用默认猜测(表百万行、索引重复度10);连接顺序采用N3启发式算法(O(KN)),放弃穷举最优,但存在star-query贪心短板。文章强调SQLite计划器与PostgreSQL CBO复杂度目标不同,统计不自动更新,EQP格式仅供调试。

【SQLite 内核】查询计划器与统计:没有 ANALYZE 时的启发式与代价估计边界

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

Postgres的pg_stats用于生成统计信息,帮助查询规划器优化执行计划。通过ANALYZE命令更新统计数据,pg_stats提供列的独特值、常见值及其频率等信息。准确的统计数据对查询性能至关重要,错误的统计会导致不佳的执行计划。使用相关统计可以提高多列过滤的准确性。

Richard Yen:pg_stats:Postgres内部统计信息的工作原理

Planet PostgreSQL Planet PostgreSQL · 2026-06-22T08:00:00Z

本文介绍MySQL性能调查的分层方法:从EXPLAIN ANALYZE查看计划实际耗时,到performance_schema分析等待事件,再结合InnoDB STATUS与OS层iostat/perf验证IO瓶颈。强调先查计划、再查等待、最后查IO,避免直接调参,并对比了PostgreSQL的对应工具,提供系统化排查思路。

【MySQL InnoDB 内核】性能调查:EXPLAIN ANALYZE 到 OS 层

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z
克里斯托夫·佩图斯:将所有GUC参数一一列出:autovacuum_analyze_scale_factor和autovacuum_analyze_threshold

文章讨论了PostgreSQL中的自动真空分析参数:autovacuum_analyze_scale_factor和autovacuum_analyze_threshold。这两个参数决定了何时对表进行ANALYZE。默认设置在大表上可能导致统计信息过时,影响查询性能。因此,建议针对大于一百万行的表调整这些参数,以提高分析频率,确保统计信息及时更新,从而优化查询效率。

克里斯托夫·佩图斯:将所有GUC参数一一列出:autovacuum_analyze_scale_factor和autovacuum_analyze_threshold

Planet PostgreSQL Planet PostgreSQL · 2026-05-03T01:00:00Z
卢卡斯·菲特尔:期待Postgres 19:使用RDTSC降低EXPLAIN ANALYZE的时间开销

即将发布的Postgres 19版本将通过采用RDTSC指令替代RDTSCP,降低EXPLAIN ANALYZE的时间开销,从而提高性能。这一改进使得在更多工作负载中启用auto_explain.log_timing成为可能。此外,新设置“timing_clock_source”允许用户选择时钟源,以优化查询性能。

卢卡斯·菲特尔:期待Postgres 19:使用RDTSC降低EXPLAIN ANALYZE的时间开销

Planet PostgreSQL Planet PostgreSQL · 2026-04-11T12:00:00Z
Radim Marek:PostgreSQL统计信息:为什么查询运行缓慢

本文讨论了PostgreSQL查询规划器如何依赖统计信息来估算查询成本。统计信息存储在pg_class和pg_statistic中,影响查询性能。过时的统计信息会导致错误的估算,影响查询效率。使用ANALYZE命令可以更新统计信息,确保规划器做出准确决策。文章还介绍了选择性、相关性及扩展统计等概念,以优化查询性能。

Radim Marek:PostgreSQL统计信息:为什么查询运行缓慢

Planet PostgreSQL Planet PostgreSQL · 2026-02-26T23:01:01Z
塞马布·塔里克:不要忽视ANALYZE:一个真实的PostgreSQL案例

在PostgreSQL数据库中,发现一个复杂的SELECT查询执行缓慢,原因是表未被分析。手动运行ANALYZE后,查询时间从10分钟缩短至20秒,CPU使用率下降83%。保持统计信息更新对性能至关重要。

塞马布·塔里克:不要忽视ANALYZE:一个真实的PostgreSQL案例

Planet PostgreSQL Planet PostgreSQL · 2025-10-10T10:47:45Z
仅仅会用MySQL的EXPLAIN还不够,还需要会用EXPLAIN ANALYZE

在 MySQL 中,EXPLAIN 关键字用于分析查询执行情况,显示执行计划、使用的索引及访问的行数。EXPLAIN ANALYZE 提供更详细的实际执行成本和时间。创建多列索引可以显著提高查询效率,减少访问行数,从而提升数据库性能。

仅仅会用MySQL的EXPLAIN还不够,还需要会用EXPLAIN ANALYZE

程序新视界 程序新视界 · 2025-09-15T02:26:45Z
Laurenz Albe:分区表统计信息

在PostgreSQL中,分区表的统计信息需要手动执行ANALYZE来收集。缺乏这些统计信息可能导致查询计划不佳,因此建议定期分析分区表,以确保优化器能够准确估算执行成本。

Laurenz Albe:分区表统计信息

Planet PostgreSQL Planet PostgreSQL · 2025-09-02T05:39:46Z
深入探讨:使用PostgreSQL中的EXPLAIN ANALYZE提升Rails性能

EXPLAIN ANALYZE是PostgreSQL的工具,用于分析SQL查询的执行过程,识别低效操作。通过ActiveRecord的explain方法或原始SQL获取执行计划,从而优化Rails应用性能。它能发现缺失索引、N+1问题及昂贵的连接,确保应用在数据增长时依然高效。

深入探讨:使用PostgreSQL中的EXPLAIN ANALYZE提升Rails性能

DEV Community DEV Community · 2025-05-12T02:24:10Z

2025年2月14日,Nathan Bossart提交补丁,增加了VACUUM/ANALYZE(VERBOSE)和自动清理日志的延迟时间信息,更新了pg_stat_progress_vacuum和pg_stat_progress_analyze视图,并在VACUUM和ANALYZE的输出中显示。

Hubert 'depesz' Lubaczewski:等待 PostgreSQL 18 – 为 VACUUM/ANALYZE(VERBOSE)和自动清理日志添加延迟时间

Planet PostgreSQL Planet PostgreSQL · 2025-02-19T11:40:10Z
调试PostgreSQL查询:EXPLAIN、ANALYZE和索引优化技巧

PostgreSQL提供EXPLAIN、ANALYZE和索引优化工具,帮助诊断和修复慢查询。EXPLAIN展示执行计划,ANALYZE提供实时性能数据。合理创建索引可以加速查询,但需避免过度索引,以免影响性能。有效使用这些工具可显著提升查询效率。

调试PostgreSQL查询:EXPLAIN、ANALYZE和索引优化技巧

DEV Community DEV Community · 2025-02-03T07:42:15Z

2024年12月11日,David Rowley 提交补丁,默认启用 EXPLAIN ANALYZE 的 BUFFERS 选项,以帮助用户更好地理解查询性能问题,减少邮件列表中的疑问。尽管有人担心信息冗长和实用性不足,但总体上对此更改表示支持。

Hubert 'depesz' Lubaczewski:等待 PostgreSQL 18 - 默认启用 EXPLAIN ANALYZE 的 BUFFERS 选项

Planet PostgreSQL Planet PostgreSQL · 2025-01-15T19:53:18Z

本文介绍了GaussDB(DWS)中的谓词列分析功能,包括动态采样和手动采样。该功能通过识别WHERE、JOIN等条件列,优化采样过程,减少分析时间,特别适用于大宽表。在9.1.0.100版本中默认开启,用户可通过guc参数进行控制。

优化大宽表查询性能,揭秘GaussDB(DWS) 谓词列analyze

华为云官方博客 华为云官方博客 · 2024-12-25T08:30:00Z

本研究利用SlowFast深度神经网络分析行车记录仪中的近失事件,显著提高了交通近失视频的识别准确性,为提升交通安全和理解事故中的认知错误提供了新见解。

Using SlowFast Networks to Analyze Near-Miss Incidents in Dashcam Videos

BriefGPT - AI 论文速递 BriefGPT - AI 论文速递 · 2024-12-05T00:00:00Z
迈克尔·班克:快速基准测试:ANALYZE 与 maintenance_io_concurrency

PostgreSQL 14 引入了 ANALYZE 命令的预取功能,使统计采样速度提高了 6-7 倍。对于高性能的本地 NVME 存储,建议将 maintenance_io_concurrency 增加到 20-50 或更高。

迈克尔·班克:快速基准测试:ANALYZE 与 maintenance_io_concurrency

Planet PostgreSQL Planet PostgreSQL · 2024-09-03T13:55:27Z
在繁忙的 MySQL 数据库服务器上使用 ANALYZE TABLE 是否安全?

本文介绍了使用ANALYZE TABLE命令可能出现的问题及解决方法。MySQL 8.0.24+和MariaDB 10.5.4+已解决该问题,但可使用Percona Server for MySQL。Percona Distribution for MySQL是免费的MySQL解决方案,提供企业级数据库环境。

在繁忙的 MySQL 数据库服务器上使用 ANALYZE TABLE 是否安全?

Percona Database Performance Blog Percona Database Performance Blog · 2023-11-01T13:12:35Z
Grant Fritchey:与Grant一起学习PostgreSQL:介绍VACUUM

PostgreSQL的VACUUM功能用于从表中删除逻辑上删除的数据并保持最新的统计信息。VACUUM可以手动或通过自动清理守护程序自动运行。VACUUM进程还可以与ANALYZE进程结合使用以更新统计信息。VACUUM和ANALYZE都可以在服务器或表级别进行自定义和控制。注意这些过程对于确保数据库健康和优化查询性能非常重要。

Grant Fritchey:与Grant一起学习PostgreSQL:介绍VACUUM

Planet PostgreSQL Planet PostgreSQL · 2023-08-21T12:01:11Z
亨丽埃塔·东布罗夫斯卡娅:那么,postgres_air 数据库发生了什么?

这篇博客是前一篇的续篇,作者在处理一个数据库性能问题时犯了一个错误,最终通过运行ANALYZE解决了问题。

亨丽埃塔·东布罗夫斯卡娅:那么,postgres_air 数据库发生了什么?

Planet PostgreSQL Planet PostgreSQL · 2023-07-14T01:50:36Z
  • <<
  • <
  • 1 (current)
  • 2
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码