首页 > 数据库 > 数据库开发技术 > 回望那那参数翻新之美
我们通常倾向于根据GUC参数的名称直观地去猜测它的涵义,而很少去细看官方文档。这种大腿思维的直觉可能会引起一些误解,因此社区也一直把参数命名优化作为一项持续性的改进工作。
从PG各大版本新特性的发布也能看到一些参数名称发生变更或者废弃,本文对几个翻新及废弃的参数整理如下:
16版本调整force_parallel_mode参数的名称为debug_parallel_query。
有些用户会认为这个参数是开启并行查询的开关,这其实并不准确。它只是确保优化器会进行相关的考量,最终还是受cost成本的影响,而不是强迫优化器选择并行执行计划。
16版本正式发布之前,新增的开发参数logical_replication_mode可配合开始解码,默认值为buffered,保持以前版本的兼容性。配置为immediate后,不需要等logical_decoding_work_mem填满可立即解码。
正式发布后参数更名为debug_logical_replication_streaming
13版本重命名wal_keep_segments为wal_keep_size,计量单位更加明确。
10版本对min_parallel_relation_size参数拆分relation为table和index,可分别控制表和索引的并行设置。
min_parallel_table_scan_size
min_parallel_index_scan_size
9.6版本之前,对区分设置archive与hot_standby这两个选项一直争论不断,从9.6版本开始,这两个选项被优化存储为replica,不过archive与hot_standby也可以进行兼容性设置。
关于这个参数有些PG的考题大家也是有一些争论。
9.5版本之前,checkpoint_segments参数既可以控制什么开始做checkpoint,同时也控制循环覆盖使用WAL文件的个数。
从9.5版本开始,这两个功能独立为两个参数分别进行控制。
max_wal_size
min_wal_size
下面是各版本因一些原因而删除的参数
版本17删除db_user_namespace参数
db级的用户功能实际很少有使用。
版本17删除old_snapshot_threshold参数
该参数引起较多bug,尤其在长事物以及逻辑复制场景,容易引起一些费解的现象,社区表示对这个功能准备工作做的不够充分,将来再重新提供"snapshot too old" 的功能。
版本17删除trace_recovery_messages参数
该参数使用场景很少。
版本16删除promote_trigger_file参数
该参数从12版本引入,用于替代trigger_file参数配置触发备库升主。同时12版本也提供了更便捷的pg_promote()函数,或者使用pg_ctl promote命令来提升备库为主库。该参数以文件触发方式效率较低。
版本16删除vacuum_defer_cleanup_age参数
对于多数人很难合理设置其大小,很难起到降低流复制冲突的作用。
版本16删除lc_collate、lc_ctype参数
初始化时设置的这两个参数是全局的本地化参数,运行期间也不可修改,只读的变量已经没有意义。
版本15删除stats_temp_directory参数
统计信息在15版本以纯内存方式集成到内核,该参数已无意义。
版本14删除vacuum_cleanup_index_scale_factor参数
该参数其实无法发挥作用,并且vacuum也增加了控制选项。
版本12删除default_with_oids参数
不再允许使用表的行标识oid系统字段,这并不可靠。
微信公众号:象楚之行
墨天轮:https://www.modb.pro/u/15675
微信:skypkmoon
勤耕细作,用心积微;静待花开,量变质成。
原文作者:象楚之行;如有侵权,请联系管理员删除。