日韩小视频-日韩久久一区二区三区-日韩久久一级毛片-日韩久久久精品中文字幕-国产精品亚洲精品影院-国产精品亚洲欧美云霸高清

下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 技術(shù)開發(fā) > 數(shù)據(jù)庫 > PostgreSQL長事務(wù)概念解析

PostgreSQL長事務(wù)概念解析

時間:2024-02-28 13:28作者:下載吧人氣:24

我們在很多地方應(yīng)該都聽到過長事務(wù)的危害,比方說長事務(wù)會導(dǎo)致表膨脹之類的。那么在PostgreSQL中什么才算是長事務(wù)呢?

首先,在PostgreSQL的官方文檔中并沒有所謂“長事務(wù)”這一定義,似乎大家約定俗稱的把一個執(zhí)行了很長卻沒有提交的事務(wù)認(rèn)為是“長事務(wù)”了,而在不同的數(shù)據(jù)庫中關(guān)于長事務(wù)的定義往往也不盡相同,那么在PostgreSQL中什么是長事務(wù)呢?

打個比方,如下所示,我在一個會話中通過begin開啟一個事務(wù),然后執(zhí)行了個簡單的查詢語句后遲遲不提交,這算不算長事務(wù)呢?

bill=# begin;
BEGIN
bill=*# select 1;
 ?column?
———-
        1
(1 row)

bill=*#

為了搞清楚這個問題,我們不妨想想,為什么我們會提到長事務(wù)呢。這是因為pg中的長事務(wù)會影響表中垃圾回收,會導(dǎo)致表的年齡增長無法freeze。而我們上面這個會話開啟的事務(wù)會有影響嗎?實際上并不會,我們可以通過pg_stat_activity視圖觀察:

bill=# select * from pg_stat_activity where pid = 26192;
-[ RECORD 1 ]—-+——————————
datid            | 16385
datname          | bill
pid              | 26192
leader_pid       |
usesysid         | 16384
usename          | bill
application_name | psql
client_addr      |
client_hostname  |
client_port      | -1
backend_start    | 2022-03-02 11:49:49.433165+08
xact_start       | 2022-03-02 14:34:04.494416+08
query_start      | 2022-03-02 14:34:06.946754+08
state_change     | 2022-03-02 14:34:06.947207+08
wait_event_type  | Client
wait_event       | ClientRead
state            | idle in transaction
backend_xid      |
backend_xmin     |
query            | select 1;
backend_type     | client backend

之所以會導(dǎo)致表膨脹之類的問題,主要是在于backend_xid和backend_xmin兩個字段,而上面的事務(wù)這兩個字段均是空的。

/* ———-
* LocalPgBackendStatus
*
* When we build the backend status array, we use LocalPgBackendStatus to be
* able to add new values to the struct when needed without adding new fields
* to the shared memory. It contains the backend status as a first member.
* ———-
*/
typedef struct LocalPgBackendStatus
{
/*
* Local version of the backend status entry.
*/
PgBackendStatus backendStatus;
/*
* The xid of the current transaction if available, InvalidTransactionId
* if not.
*/
TransactionId backend_xid;
/*
* The xmin of the current session if available, InvalidTransactionId if
* not.
*/
TransactionId backend_xmin;
} LocalPgBackendStatus;
標(biāo)簽[db:關(guān)鍵字]

相關(guān)下載

查看所有評論+

網(wǎng)友評論

網(wǎng)友
您的評論需要經(jīng)過審核才能顯示

熱門閱覽

最新排行

公眾號

主站蜘蛛池模板: 亚洲欧美日韩国产vr在线观 | 日韩国产欧美一区二区三区 | 高清在线亚洲精品国产二区 | 成人免费一区二区三区在线观看 | 日本在线网 | 欧美一级毛片生活片 | 欧美另类视频videosbest18 | 亚洲一区精品在线 | 欧美午夜免费一级毛片 | 欧美大狠狠大臿蕉香蕉大视频 | 怡红院免费的全部视频国产a | japanesevideo国产在线 | 国产黄色三级网站 | 亚洲一区二区三区精品影院 | 亚洲精品不卡久久久久久 | 日韩一区二区三区在线 | 美女成人网 | 最全精品自拍视频在线 | 国产欧美久久久另类精品 | 亚洲视频免费在线 | 亚洲成人三级 | 久久久久久中文字幕 | 窝窝社区在线观看www | 我看毛片 | 18videosex性欧美69超高清 | 国内91视频| 明星国产欧美日韩在线观看 | 久久99亚洲精品久久久久网站 | 亚洲午夜18 | 久久精品成人一区二区三区 | 精品国产综合成人亚洲区 | 在线观看国产情趣免费视频 | 免费看欧美毛片大片免费看 | 色综合夜夜嗨亚洲一二区 | 手机看片国产欧美日韩高清 | 欧美一级视频高清片 | 国产网站免费 | 99久久精品免费看国产一区二区三区 | 久久精品亚洲乱码伦伦中文 | 91久久精品国产91久久性色tv | 国产午夜精品理论片免费观看 |