您好,登錄后才能下訂單哦!
今天小編給大家分享的是關(guān)于PostgreSQL 版本識別的詳細(xì)介紹,相信很多人都不太了解,為了讓大家更加了解PostgreSQL 版本識別,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會有所收獲的哦。
Insert\delete\update通過ctid定位,并查看該記錄xmin\xmax的變化。
Xid:數(shù)據(jù)庫的事務(wù)ID;
Xmin:行頭部的xid信息,xmin表示插入該記錄的事務(wù)ID
Xmax:表示刪除或lock該記錄的事務(wù)ID
xid_snapshot:當(dāng)前集群中為結(jié)束的事務(wù)
Clog:事務(wù)提交狀態(tài)日志
記錄格式的定義:htup_details.h:POSTGRES heap tuple header definitions.
1)查看所有xid相關(guān)的函數(shù)有哪些,這里需要的是txid_current函數(shù)
2)可以看到當(dāng)前的事務(wù)ID
postgres=# select * from txid_current(); txid_current -------------- 1676 (1 row) 3)進(jìn)行一次insert后,看事務(wù)ID已經(jīng)+1 postgres=# insert into tt values(1); INSERT 0 1 postgres=# select ctid,xmin,xmax,cmin,cmax,id from tt; ctid | xmin | xmax | cmin | cmax | id -------+------+------+------+------+---- (0,1) | 1677 | 0 | 0 | 0 | 1 (1 row)
4)開啟一個(gè)事務(wù)后,進(jìn)行update
postgres=# begin; BEGIN postgres=# update tt set id=3; UPDATE 1 postgres=# select ctid,xmin,xmax,cmin,cmax,id from tt; ctid | xmin | xmax | cmin | cmax | id -------+------+------+------+------+---- (0,2) | 1678 | 0 | 0 | 0 | 3 (1 row)
5)在另外一個(gè)會話查看
postgres=# select ctid,xmin,xmax,cmin,cmax,id from tt; ctid | xmin | xmax | cmin | cmax | id -------+------+------+------+------+---- (0,1) | 1677 | 1678 | 0 | 0 | 1 (1 row)
看當(dāng)前未結(jié)束的事務(wù),或未開啟的事務(wù)
postgres=# select *from txid_current_snapshot(); txid_current_snapshot ----------------------- 1684:1684: (1 row) postgres=# select * from txid_current(); txid_current -------------- 1684 (1 row)
記錄事務(wù)是否提交,在這個(gè)文件里面,bit:
-rw-------. 1 pg pg 8192 Jun 10 04:19 0000 [pg@localhost pg_clog]$ pwd /home/pg/data/pg_clog
以上就是關(guān)于PostgreSQL 版本識別的詳細(xì)介紹了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎來億速云行業(yè)資訊!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。