真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

postgresql整數(shù)的簡單介紹

PostgreSQL 中 sequence 的用法

sequence 是 pg 自帶的高效的自增id工具(也叫序列)。sequence 使用了輕量級鎖的方式來做到高效自增id的,所以會比 UPDATE 行鎖快。sequence 的返回數(shù)據(jù)類型默認是64位的整數(shù),pg 10 可以自定 smallint, integer 或者是 bigint。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比茅箭網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式茅箭網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋茅箭地區(qū)。費用合理售后完善,十年實體公司更值得信賴。

sequence 是可以保證自增數(shù)據(jù)不重復(fù)的,也就是說每次自增后都會持久化保存,那么為了繼續(xù)提高性能,可以加上 CACHE 參數(shù)(默認為1),每個進程(連接)可以緩存一個子序列在當前進程內(nèi)存里面,當子序列用完了才會去原序列取新的子序列。

這個用個例子簡單說一下,創(chuàng)建 sequence temp_seq3 時用了 CACHE 10,A session 可以獲取到的值是 1...10,B session 可以獲取到的值是 11...20,那么獲取順序可能是 (A, A, B, A),返回值是 (1, 2, 11, 3),這個不是嚴格自增的序列,但可以保證回次返回都是唯一的,用了 CYCLE 參數(shù)的除外。

根據(jù)文檔和源碼( link 第80行),緩存在內(nèi)存里面的最大值(cached)是每個進程都不一樣的,所以如果要求嚴格自增的服務(wù)不能用 CACHE。

這里寫三種用 pg 做自增id的方式

測試命令,在 MacOS 上用 docker 開一個 pg 在里面運行一下 pgbench 腳本,其中 sql.sql 的內(nèi)容替換成對應(yīng)的壓測腳本。

TPS: 986

TPS: 7332

TPS: 7451

看看微信的分布式id生成器,原理都差不多,"實際應(yīng)用中每次提升的步長為10000" = "CACHE 10000"。 link

以上優(yōu)化已經(jīng)是用在友好速搭電商系統(tǒng)的訂單號和優(yōu)惠券號生成服務(wù)中,為商家提供更快更可靠的服務(wù)。

postgresql創(chuàng)建表年齡區(qū)間是是什么數(shù)據(jù)類型

(1)整數(shù)型 整數(shù)包括bigint、int、smallint和tinyint,從標識符的含義就可以看出,它們的表示數(shù)范圍逐漸縮校 lbigint:大整數(shù),數(shù)范圍為-263(-9223372036854775808)~263-1(9223372036854775807),其精度為19,小數(shù)位數(shù)為0,長度為8字節(jié)。

postgressql數(shù)據(jù)源怎么配置

PostgresSQL提供了許多數(shù)據(jù)庫配置參數(shù),本章將介紹每個參數(shù)的作用和如何配置每一個參數(shù)。

10.1 如何設(shè)置數(shù)據(jù)庫參數(shù)

所有的參數(shù)的名稱都是不區(qū)分大小寫的。每個參數(shù)的取值是布爾型、整型、浮點型和字符串型這四種類型中的一個,分別用boolean

、integer、 floating point和string表示。布爾型的值可以寫成ON、OFF、 TRUE、 FALSE、 YES、 NO、 1和 0,而且不區(qū)分大小

寫。

有些參數(shù)用來配置內(nèi)存大小和時間值。內(nèi)存大小的單位可以是KB、MB和GB。時間的單位可以是毫秒、秒、分鐘、小時和天。用ms表示

毫秒,用s表示秒,用 min表示分鐘,用h表示小時,用d表示天。表示內(nèi)存大小和時間值的參數(shù)參數(shù)都有一個默認的單位,如果用戶

在設(shè)置參數(shù)的值時沒有指定單位,則以參數(shù)默認的 單位為準。例如,參數(shù)shared_buffers表示數(shù)據(jù)緩沖區(qū)的大小,它的默認單位是

數(shù)據(jù)塊的個數(shù),如果把它的值設(shè)成8,因為每個數(shù)據(jù)塊的大小是 8KB,則數(shù)據(jù)緩沖區(qū)的大小是8*8=64KB,如果將它的值設(shè)成128MB,

則數(shù)據(jù)緩沖區(qū)的大小是128MB。參數(shù)vacuum_cost_delay 的默認單位是毫秒,如果把它的值設(shè)成10,則它的值是10毫秒,如果把它的

值設(shè)成100s,則它的值是100秒。

所有的參數(shù)都放在文件 postgresql.conf中,下面是一個文件實例:

#這是注釋

log_connections = yes

log_destination = 'syslog'

search_path = '"$user", public'

每一行只能指定一個參數(shù),空格和空白行都會被忽略?!?#”表示注釋,注釋信息不用單獨占一行,可以出現(xiàn)在配置文件的任何地方

。如果參數(shù)的值不是簡單的標識符和數(shù)字,應(yīng)該用單引號引起來。如果參數(shù)的值中有單引號,應(yīng)該寫兩個單引號,或者在單引號前面

加一個反斜杠。

一個配置文件也可以包含其它配置文件,使用include指令能夠達到這個目的,例如,假設(shè)postgresql.conf文件中有下面一行:

include ‘my.confg’

文件my.config中的配置信息也會被數(shù)據(jù)庫讀入。include指令指定的配置文件也可以用include指令再包含其它配置文件。如果

include指令中指定的文件名不是絕對路徑,數(shù)據(jù)庫會在postgresql.conf文件所在的目錄下查找這個文件。

用戶也可以在數(shù)據(jù)庫啟動以后修改postgresql.conf配置文件,使用命令pg_ctl reload來通知數(shù)據(jù)庫重新讀取配置文件。注意,有些

參數(shù)在數(shù)據(jù)庫啟動以后,不能被修改,只有重新啟動數(shù)據(jù)庫以后,新的參數(shù)值才能生效。另外一些參數(shù)可 以在數(shù)據(jù)庫運行過程中被

修改而且新的值可以立即生效。所以數(shù)據(jù)庫在運行過程中重新讀取參數(shù)配置文件以后,不是所有的參數(shù)都會被賦給新的值。

用戶可以在自己建立的會話中執(zhí)行命令SET修改某些配置參數(shù)的值(注意不是全部參數(shù)),例如:

SET ENABLE_SEQSCAN TO OFF;

另外,有些參數(shù)只有數(shù)據(jù)庫超級用戶才能使用SET命令修改它們。用戶可以在psql中執(zhí)行命令show來查看所有的數(shù)據(jù)庫參數(shù)的當前值

。例如:

(1)show all; --查看所有數(shù)據(jù)庫參數(shù)的值

(2)show search_path; --查看參數(shù)search_path的值

10.2 連接與認證

10.2.1 連接設(shè)置

listen_addresses (string)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它指定數(shù)據(jù)庫用來監(jiān)聽客戶端連接的TCP/IP地址。默認是值是* ,表示數(shù)據(jù)庫在啟動以

后將在運行數(shù)據(jù)的機器上的所有的IP地址上監(jiān)聽用戶請求(如果機器只有一個網(wǎng)卡,只有一個IP地址,有多個網(wǎng)卡的機器有多個 IP

地址)??梢詫懗蓹C器的名字,也可以寫成IP地址,不同的值用逗號分開,例如,’server01’, ’140.87.171.49, 140.87.171.21

’。如果被設(shè)成localhost,表示數(shù)據(jù)庫只能接受本地的客戶端連接請求,不能接受遠程的客戶端連接請求。

port (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它指定數(shù)據(jù)庫監(jiān)聽戶端連接的TCP端口。默認值是5432。

max_connections (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它決定數(shù)據(jù)庫可以同時建立的最大的客戶端連接的數(shù)目。默認值是100。

superuser_reserved_connections (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它表示預(yù)留給超級用戶的數(shù)據(jù)庫連接數(shù)目。它的值必須小于max_connections。 普通用

戶可以在數(shù)據(jù)庫中建立的最大的并發(fā)連接的數(shù)目是max_connections- superuser_reserved_connections, 默認值是3。

unix_socket_group (string)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。設(shè)置Unix-domain socket所在的操作系統(tǒng)用戶組。默認值是空串,用啟動數(shù)據(jù)庫的操作

系統(tǒng)用戶所在的組作為Unix-domain socket的用戶組。

unix_socket_permissions (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它設(shè)置Unix-domain socket的訪問權(quán)限,格式與操作系統(tǒng)的文件訪問權(quán)限是一樣的。默

認值是0770,表示任何操作系統(tǒng)用戶都能訪問Unix-domain socket??梢栽O(shè)為0770(所有Unix-domain socket文件的所有者所在的組

包含的用戶都能訪問)和0700(只有Unix-domain socket文件的所有者才能訪問)。對于Unix-domain socket,只有寫權(quán)限才有意義,

讀和執(zhí)行權(quán)限是沒有意義的。

tcp_keepalives_idle (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是0,意思是使用操作系統(tǒng)的默認值。它設(shè)置TCP套接字的TCP_KEEPIDLE屬性。這個參數(shù)對于

通過Unix-domain socket建立的數(shù)據(jù)庫連接沒有任何影響。

tcp_keepalives_interval (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是0,意思是使用操作系統(tǒng)的默認值。它設(shè)置TCP套接字的TCP_KEEPINTVL屬性。這個參數(shù)對

于通過Unix-domain socket建立的數(shù)據(jù)庫連接沒有任何影響。

tcp_keepalives_count (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是0,意思是使用操作系統(tǒng)的默認值。它設(shè)置TCP套接字的TCP_KEEPCNT屬性。這個參數(shù)對于

通過Unix-domain socket建立的數(shù)據(jù)庫連接沒有任何影響。

10.2.2. 安全與認證

authentication_timeout (integer)

這個參數(shù)只能在postgresql.conf文件中被設(shè)置,它指定一個時間長度,在這個時間長度內(nèi),必須完成客戶端認證操作,否則客戶端

連接請求將被拒絕。它可以阻止某些客戶端進行認證時長時間占用數(shù)據(jù)庫連接。單位是秒,默認值是60。

ssl (boolean)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。決定數(shù)據(jù)庫是否接受SSL連接。默認值是off。

ssl_ciphers (string)

指定可以使用的SSL加密算法。查看操作系統(tǒng)關(guān)于openssl的用戶手冊可以得到完整的加密算法列表(執(zhí)行命令openssl ciphers –v

也可以得到)。

10.3 資源消耗

10.3.1 內(nèi)存

shared_buffers (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它表示數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)塊的個數(shù),每個數(shù)據(jù)塊的大小是8KB。數(shù)據(jù)緩沖區(qū)位于數(shù)據(jù)

庫的共享內(nèi)存中,它越大越好,不能小于128KB。默認值是1024。

temp_buffers (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是8MB。它決定存放臨時表的數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)塊的個數(shù),每個數(shù)據(jù)塊的大小是8KB。臨時

表緩沖區(qū)存放在每個數(shù)據(jù)庫進程的私有內(nèi)存中,而不是存放在數(shù)據(jù)庫的共享內(nèi)存中。默認值是1024。

max_prepared_transactions (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它決定能夠同時處于prepared狀態(tài)的事務(wù)的最大數(shù)目(參考PREPARE TRANSACTION命令

)。如果它的值被設(shè)為0。則將數(shù)據(jù)庫將關(guān)閉prepared事務(wù)的特性。它的值通常應(yīng)該和max_connections的值 一樣大。默認值是5。

work_mem (integer)

這個參數(shù)可以在任何時候被設(shè)置。它決定數(shù)據(jù)庫的排序操作和哈希表使用的內(nèi)存緩沖區(qū)的大小。如何work_mem指定的內(nèi)存被耗盡,數(shù)

據(jù)庫將使用磁盤文件進 行完成操作,速度會慢很多。ORDER BY、DISTINCT和merge連接會使用排序操作。哈希表在Hash連接、hash聚

集函數(shù)和用哈希表來處理IN謂詞中的子查詢中被使用。單位是 KB,默認值是1024。

maintenance_work_mem (integer)

這個參數(shù)可以在任何時候被設(shè)置。它決定數(shù)據(jù)庫的維護操作使用的內(nèi)存空間的大小。數(shù)據(jù)庫的維護操作包括VACUUM、CREATE INDEX和

ALTER TABLE ADD FOREIGN KEY等操作。 maintenance_work_mem的值如果比較大,通??梢钥s短VACUUM數(shù)據(jù)庫和從dump文件中恢復(fù)數(shù)

據(jù)庫需要的時間。 maintenance_work_mem存放在每個數(shù)據(jù)庫進程的私有內(nèi)存中,而不是存放在數(shù)據(jù)庫的共享內(nèi)存中。單位是KB,默

認值是16384。

max_stack_depth (integer)

這個參數(shù)可以在任何時候被設(shè)置,但只有數(shù)據(jù)庫超級用戶才能修改它。它決定一個數(shù)據(jù)庫進程在運行時的STACK所占的空間的最大值

。數(shù)據(jù)庫進程在運行時,會 自動檢查自己的STACK大小是否超過max_stack_depth,如果超過,會自動終止當前事務(wù)。這個值應(yīng)該比

操作系統(tǒng)設(shè)置的進程STACK的大小 的上限小1MB。使用操作系統(tǒng)命令“ulimit –s“可以得到操作系統(tǒng)設(shè)置的進程STACK的最大值。單

位是KB,默認值是100。

10.3.2 Free Space Map

數(shù)據(jù)庫的所有可用空間信息都存放在一個叫free space map (FSM)的結(jié)構(gòu)中,它記載數(shù)據(jù)文件中每個數(shù)據(jù)塊的可用空間的大小。FSM

中沒有記錄的數(shù)據(jù)塊,即使有可用空間,也不會系統(tǒng)使用。系統(tǒng)如果需要新的物理存 儲空間,會首先在FSM中查找,如果FSM中沒有

一個數(shù)據(jù)頁有足夠的可用空間,系統(tǒng)就會自動擴展數(shù)據(jù)文件。所以,F(xiàn)SM如果太小,會導致系統(tǒng)頻繁地擴展數(shù) 據(jù)文件,浪費物理存儲

空間。命令VACUUM VERBOSE在執(zhí)行結(jié)束以后,會提示當前的FSM設(shè)置是否滿足需要,如果FSM的參數(shù)值太小,它會提示增大參數(shù)。

FSM存放在數(shù)據(jù)庫的共享內(nèi)存中,由于物理內(nèi)存的限制,F(xiàn)SM不可能跟蹤數(shù)據(jù)庫的所有的數(shù)據(jù)文件的所有數(shù)據(jù)塊的可用空間信息,只能

跟蹤一部分數(shù)據(jù)塊的可用空間信息。

max_fsm_relations (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。默認值是1000。它決定FSM跟蹤的表和索引的個數(shù)的上限。每個表和索引在FSM中占7個

字節(jié)的存儲空間。

max_fsm_pages (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它決定FSM中跟蹤的數(shù)據(jù)塊的個數(shù)的上限。initdb在創(chuàng)建數(shù)據(jù)庫集群時會根據(jù)物理內(nèi)存

的大小決定它的值。每 個數(shù)據(jù)塊在fsm中占6個字節(jié)的存儲空間。它的大小不能小于16 * max_fsm_relations。默認值是20000。

10.3.3 內(nèi)核資源

max_files_per_process (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。他設(shè)定每個數(shù)據(jù)庫進程能夠打開的文件的數(shù)目。默認值是1000。

shared_preload_libraries (string)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。它設(shè)置數(shù)據(jù)庫在啟動時要加載的操作系統(tǒng)共享庫文件。如果有多個庫文件,名字用逗號

分開。如果數(shù)據(jù)庫在啟動時未找到shared_preload_libraries指定的某個庫文件,數(shù)據(jù)庫將無法啟動。默認值為空串。

10.3.4 垃圾收集

執(zhí)行VACUUM 和ANALYZE命令時,因為它們會消耗大量的CPU與IO資源,而且執(zhí)行一次要花很長時間,這樣會干擾系統(tǒng)執(zhí)行應(yīng)用程序發(fā)

出的SQL命令。為了解決這個 問題,VACUUM 和ANALYZE命令執(zhí)行一段時間后,系統(tǒng)會暫時終止它們的運行,過一段時間后再繼續(xù)執(zhí)行

這兩個命令。這個特性在默認的情況下是關(guān)閉的。將參數(shù) vacuum_cost_delay設(shè)為一個非零的正整數(shù)就可以打開這個特性。

用戶通常只需要設(shè)置參數(shù)vacuum_cost_delay和vacuum_cost_limit,其它的參數(shù)使用默認值即可。VACUUM 和ANALYZE命令在執(zhí)行過程

中,系統(tǒng)會計算它們執(zhí)行消耗的資源,資源的數(shù)量用一個正整數(shù)表示,如果資源的數(shù)量超過 vacuum_cost_limit,則執(zhí)行命令的進程

會進入睡眠狀態(tài),睡眠的時間長度是是vacuum_cost_delay。 vacuum_cost_limit的值越大,VACUUM 和ANALYZE命令在執(zhí)行的過程中

,睡眠的次數(shù)就越少,反之,vacuum_cost_limit的值越小,VACUUM 和ANALYZE命令在執(zhí)行的過程中,睡眠的次數(shù)就越多。

vacuum_cost_delay (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是0。它決定執(zhí)行VACUUM 和ANALYZE命令的進程的睡眠時間。單位是微秒。它的值最好是10

的整數(shù),如果不是10的整數(shù),系統(tǒng)會自動將它設(shè)為比該值大的并且最接近該值的是10 的倍數(shù)的整數(shù)。如果值是0,VACUUM 和ANALYZE

命令在執(zhí)行過程中不會主動進入睡眠狀態(tài),會一直執(zhí)行下去直到結(jié)束。

vacuum_cost_page_hit (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是1。

vacuum_cost_page_miss (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是10。

vacuum_cost_page_dirty (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是20。

vacuum_cost_limit (integer)

這個參數(shù)可以在任何時候被設(shè)置。默認值是200。

10.3.5 后臺寫數(shù)據(jù)庫進程

后臺寫數(shù)據(jù)庫進程負責將數(shù)據(jù)緩沖區(qū)中的被修改的數(shù)據(jù)塊(又叫臟數(shù)據(jù)塊)寫回到數(shù)據(jù)庫物理文件中。

bgwriter_delay (integer)

這個參數(shù)只能在文件postgresql.conf中設(shè)置。它決定后臺寫數(shù)據(jù)庫進程的睡眠時間。后臺寫數(shù)據(jù)庫進程每次完成寫數(shù)據(jù)到物理文件

中的任務(wù)以后, 就會睡眠bgwriter_delay指定的時間。 bgwriter_delay的值應(yīng)該是10的倍數(shù),如果用戶設(shè)定的值不是10的倍數(shù),數(shù)

據(jù)庫會自動將參數(shù)的值設(shè)為比用戶指定的值大的最接近用戶指定的值 的同時是10的倍數(shù)的值。單位是毫秒,默認值是200。

bgwriter_lru_maxpages (integer)

這個參數(shù)只能在文件postgresql.conf中設(shè)置。默認值是100。后臺寫數(shù)據(jù)庫進程每次寫臟數(shù)據(jù)塊時,寫到外部文件中的臟數(shù)據(jù)塊的個

數(shù)不能超過 bgwriter_lru_maxpages指定的值。例如,如果它的值是500,則后臺寫數(shù)據(jù)庫進程每次寫到物理文件的數(shù)據(jù)頁的個數(shù)不

能超過500,若 超過,進程將進入睡眠狀態(tài),等下次醒來再執(zhí)行寫物理文件的任務(wù)。如果它的值被設(shè)為0, 后臺寫數(shù)據(jù)庫進程將不會

寫任何物理文件(但還會執(zhí)行檢查點操作)。

bgwriter_lru_multiplier (floating point)

這個參數(shù)只能在文件postgresql.conf中設(shè)置。默認值是2.0。它決定后臺寫數(shù)據(jù)庫進程每次寫物理文件時,寫到外部文件中的臟數(shù)據(jù)

塊的個數(shù) (不能超過bgwriter_lru_maxpages指定的值)。一般使用默認值即可,不需要修改這個參數(shù)。這個參數(shù)的值越大,后臺寫

數(shù)據(jù)庫進程每次寫 的臟數(shù)據(jù)塊的個數(shù)就越多。

10.4 事務(wù)日志

full_page_writes (boolean)

這個參數(shù)只能在postgresql.conf文件中被設(shè)置。默認值是on。打開這個參數(shù),可以提高數(shù)據(jù)庫的可靠性,減少數(shù)據(jù)丟失的概率,但

是會產(chǎn)生過多的事務(wù)日志,降低數(shù)據(jù)庫的性能。

wal_buffers (integer)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。默認值是8。它指定事務(wù)日志緩沖區(qū)中包含的數(shù)據(jù)塊的個數(shù),每個數(shù)據(jù)塊的大小是8KB,

所以默認的事務(wù)日志緩沖區(qū)的大小是8*8=64KB。事務(wù)日志緩沖區(qū)位于數(shù)據(jù)庫的共享內(nèi)存中。

wal_writer_delay (integer)

這個參數(shù)只能在postgresql.conf文件中被設(shè)置。它決定寫事務(wù)日志進程的睡眠時間。WAL進程每次在完成寫事務(wù)日志的任務(wù)后,就會

睡眠 wal_writer_delay指定的時間,然后醒來,繼續(xù)將新產(chǎn)生的事務(wù)日志從緩沖區(qū)寫到WAL文件中。單位是毫秒(millisecond),

默認 值是200。

commit_delay (integer)

這個參數(shù)可以在任何時候被設(shè)置。它設(shè)定事務(wù)在發(fā)出提交命令以后的睡眠時間,只有在睡眠了commit_delay指定的時間以后,事務(wù)產(chǎn)

生的事務(wù)日志才會 被寫到事務(wù)日志文件中,事務(wù)才能真正地提交。增大這個參數(shù)會增加用戶的等待時間,但是可以讓多個事務(wù)被同

時提交,提高系統(tǒng)的性能。如果數(shù)據(jù)庫中的負載比較 高,而且大部分事務(wù)都是更新類型的事務(wù),可以考慮增大這個參數(shù)的值。下面

的參數(shù)commit_siblings會影響commit_delay是否生效。 默認值是0,單位是微秒(microsecond)。

commit_siblings (integer)

這個參數(shù)可以在任何時候被設(shè)置。這個參數(shù)的值決定參數(shù)commit_delay是否生效。假設(shè)commit_siblings的值是5,如果一個事務(wù)發(fā)出

一個提交請求,此時,如果數(shù)據(jù)庫中正在執(zhí)行的事務(wù)的個數(shù)大于或等于5,那么該事務(wù)將睡眠commit_delay指定的時間。如果數(shù)據(jù)庫

中正在執(zhí)行的事務(wù) 的個數(shù)小于5,這個事務(wù)將直接提交。默認值是5。

10.5 檢查點

checkpoint_segments (integer)

這個參數(shù)只能在postgresql.conf文件中被設(shè)置。默認值是3。它影響系統(tǒng)何時啟動一個檢查點操作。如果上次檢查點操作結(jié)束以后,

系統(tǒng)產(chǎn)生的事 務(wù)日志文件的個數(shù)超過checkpoint_segments的值,系統(tǒng)就會自動啟動一個檢查點操作。增大這個參數(shù)會增加數(shù)據(jù)庫崩

潰以后恢復(fù)操作需要的時 間。

checkpoint_timeout (integer)

這個參數(shù)只能在postgresql.conf文件中被設(shè)置。單位是秒,默認值是300。它影響系統(tǒng)何時啟動一個檢查點操作。如果現(xiàn)在的時間減

去上次檢查 點操作結(jié)束的時間超過了checkpoint_timeout的值,系統(tǒng)就會自動啟動一個檢查點操作。增大這個參數(shù)會增加數(shù)據(jù)庫崩

潰以后恢復(fù)操作需要的時 間。

checkpoint_completion_target (floating point)

這個參數(shù)控制檢查點操作的執(zhí)行時間。合法的取值在0到1之間,默認值是0.5。不要輕易地改變這個參數(shù)的值,使用默認值即可。 這

個參數(shù)只能在postgresql.conf文件中被設(shè)置。

10.6 歸檔模式

archive_mode (boolean)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。默認值是off。它決定數(shù)據(jù)庫是否打開歸檔模式。

archive_dir (string)

這個參數(shù)只有在啟動數(shù)據(jù)庫時,才能被設(shè)置。默認值是空串。它設(shè)定存放歸檔事務(wù)日志文件的目錄。

archive_timeout (integer)

這個參數(shù)只能在postgresql.conf文件中被設(shè)置。默認值是0。單位是秒。如果archive_timeout的值不是0,而且當前時間減去數(shù) 據(jù)

庫上次進行事務(wù)日志文件切換的時間大于archive_timeout的值,數(shù)據(jù)庫將進行一次事務(wù)日志文件切換。一般情況下,數(shù)據(jù)庫只有在

一個事務(wù)日志 文件寫滿以后,才會切換到下一個事務(wù)日志文件,設(shè)定這個參數(shù)可以讓數(shù)據(jù)庫在一個事務(wù)日志文件尚未寫滿的情況下

切換到下一個事務(wù)日志文件。

10.7 優(yōu)化器參數(shù)

10.7.1 存取方法參數(shù)

下列參數(shù)控制查詢優(yōu)化器是否使用特定的存取方法。除非對優(yōu)化器特別了解,一般情況下,使用它們默認值即可。

enable_bitmapscan (boolean)

打開或者關(guān)閉bitmap-scan 。默認值是 on。

enable_hashagg (boolean)

打開或者關(guān)閉hashed aggregation。默認值是 on。

enable_hashjoin (boolean)

打開或者關(guān)閉hash-join。默認值是 on。

enable_indexscan (boolean)

打開或者關(guān)閉index-scan。默認值是 on。

enable_mergejoin (boolean)

打開或者關(guān)閉merge-join。默認值是 on。

enable_nestloop (boolean)

打開或者關(guān)閉nested-loop join。默認值是 on。不可能完全不使用nested-loop join,關(guān)閉這個參數(shù)會讓系統(tǒng)在有其它存取方法可

用的情況下,不使用nested-loop join。

enable_seqscan (boolean)

打開或者關(guān)閉sequential scan。默認值是 on。不可能完全不使用sequential scan,關(guān)閉這個參數(shù)會讓系統(tǒng)在有其它存取方法可用

的情況下,不使用sequential scan。


文章題目:postgresql整數(shù)的簡單介紹
當前網(wǎng)址:http://weahome.cn/article/dscdjsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部