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

軟件下載吧

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

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

時(shí)間:2024-02-28 13:28作者:下載吧人氣:26

我們?cè)诤芏嗟胤綉?yīng)該都聽到過長(zhǎng)事務(wù)的危害,比方說長(zhǎng)事務(wù)會(huì)導(dǎo)致表膨脹之類的。那么在PostgreSQL中什么才算是長(zhǎng)事務(wù)呢?

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

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

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

bill=*#

為了搞清楚這個(gè)問題,我們不妨想想,為什么我們會(huì)提到長(zhǎng)事務(wù)呢。這是因?yàn)閜g中的長(zhǎng)事務(wù)會(huì)影響表中垃圾回收,會(huì)導(dǎo)致表的年齡增長(zhǎng)無(wú)法freeze。而我們上面這個(gè)會(huì)話開啟的事務(wù)會(huì)有影響嗎?實(shí)際上并不會(huì),我們可以通過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

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

/* ———-
* 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)下載

查看所有評(píng)論+

網(wǎng)友評(píng)論

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

熱門閱覽

最新排行

公眾號(hào)

主站蜘蛛池模板: xxxxx日韩| 亚洲日本一区二区一本一道| 久99re视频9在线观看| 青草资源视频在线高清观看| 最近最新最好的2018中文字幕| 国产精品久久久久久久久久免费| 亚洲国产精品无码久久| 337p粉嫩胞高清视频在线| 欧美日韩亚洲另类| 日韩欧美久久一区二区| 国产成年无码久久久免费| 久九九久福利精品视频视频| 4hu四虎永久免在线视| 日本高清二三四本2021第九页 | 免费大黄网站在线看| www久久只有这里有精品| 猛男猛女嘿咻视频网站| 在线A级毛片无码免费真人| 亚洲欧美中文字幕5发布| 抽搐一进一出gif日本| 最新猫咪www免费人成| 国产伦精品一区二区三区在线观看| 久久久久久亚洲精品中文字幕| 补课老师让我cao出水| 成人午夜性a一级毛片美女| 免费无遮挡无码视频网站| 99久久精品国产片久人| 欧美国产亚洲日韩在线二区| 国产成人福利精品视频| 久久丁香五月天综合网| 精品国产一区二区三区2021| 在线观看中文字幕一区| 亚洲乱码一区二区三区在线观看 | 国产V亚洲V天堂无码久久久| 一本加勒比HEZYO无码人妻| 热久久最新视频| 国产精品任我爽爆在线播放| 久久精品国产99久久无毒不卡| 羞羞漫画在线成人漫画阅读免费| 女人被男人桶得好爽免费视频| 亚洲欧美日韩精品高清|