小知识,大挑战!本文正在参与“ 程序员必备小知识 ”创作活动
本文同时参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金
参考了阿里云最佳实践,和 postgresql 官方手册,研究学习设置 postgresql.conf 参数。(下列只列出需要修改的参数,默认值即为合适值的没有列出。)
系统环境设置
datestyle = 'iso, mdy'
timezone = 'Asia/Shanghai'
lc_messages = 'en_US.utf8'
lc_monetary = 'en_US.utf8'
lc_numeric = 'en_US.utf8'
lc_time = 'en_US.utf8'
default_text_search_config = 'pg_catalog.english'
datestyle:设置日期和时间值的显示格式,以及解释有歧义的日期输入值的规则。由于历史原因, 这个变量包含两个独立的部分:输出格式声明(ISO、Postgres、SQL或German)、 输入/输出的年/月/日顺序(DMY、MDY或YMD)。这些可以被独立设置或者一起设置。关键字Euro和European是DMY的同义词;关键字US、NonEuro和NonEuropean是MDY的同义词。内建默认值是ISO, MDY,但是initdb将用对应于选中的lc_time区域行为的设置初始化配置文件。
timezone:设置用于显示和解释时间戳的时区。内建默认值是GMT,但是它通常会在postgresql.conf中被覆盖;initdb将安装一个对应于其系统环境的设置。
lc_messages:设置消息显示的语言。可接受的值是系统相关的,如果这个变量被设置为空字符串(默认),那么该值将以一种系统相关的方式从服务器的执行环境中继承。
在一些系统上,这个区域分类并不存在。仍然可以设置这个变量,只是不会有任何效果。同样,所期望语言的翻译消息也可能不存在。在这种情况下,你将仍然继续看到英文消息。 只有超级用户可以改变这个设置。因为它同时影响发送到服务器日志和客户端的消息。一个不正确的值可能会降低服务器日志的可读性。
lc_monetary:设置用于格式化货币量的区域,例如用to_char函数族。可接受的值是系统相关的,如果这个变量被设置为空字符串(默认),那么该值将以一种系统相关的方式从服务器的执行环境中继承。
lc_numeric:设置用于格式化数字的区域,例如用to_char函数族。可接受的值是系统相关的,如果这个变量被设置为空字符串(默认),那么该值将以一种系统相关的方式从服务器的执行环境中继承。
lc_time:设置用于格式化日期和时间的区域,例如用to_char函数族。可接受的值是系统相关的,如果这个变量被设置为空字符串(默认),那么该值将以一种系统相关的方式从服务器的执行环境中继承。
default_text_search_config:选择被那些没有显式参数指定配置的文本搜索函数变体使用的文本搜索配置,内建默认值是pg_catalog.simple,但是如果能够标识一个匹配区域的配置,initdb将用对应于选中的lc_ctype区域的设置初始化配置文件。