PostgreSQL 16 中,无法内联的 SQL 函数(如调用 regexp_matches)每次调用都会重新生成执行计划,而 PL/pgSQL 函数会缓存计划。某每小时任务循环调用该函数 1000 万次,SQL 版因反复规划耗时约 47 秒;改用 PL/pgSQL 后仅规划 6 次,降至约 24 秒;改用 regexp_match 使函数可内联后进一步降至约 12 秒。PostgreSQL 18 已修复此问题。
本文介绍了GaussDB(for MySQL)如何缓存Prepared Statement执行计划以提高性能,通过系统参数rds_plan_cache来开关该特性。测试结果表明,启用执行计划缓存后,各类业务性能均有提升。
完成下面两步后,将自动完成登录并继续当前操作。