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

          軟件下載吧

          當前位置:軟件下載吧 > 技術開發 > 數據庫 > PostgreSQL長事務概念解析

          PostgreSQL長事務概念解析

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

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

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

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

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

          bill=*#

          為了搞清楚這個問題,我們不妨想想,為什么我們會提到長事務呢。這是因為pg中的長事務會影響表中垃圾回收,會導致表的年齡增長無法freeze。而我們上面這個會話開啟的事務會有影響嗎?實際上并不會,我們可以通過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

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

          /* ———-
          * 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;
          標簽[db:關鍵字]

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 免费观看一区二区三区| 无码人妻av一区二区三区蜜臀| 玩弄放荡人妻一区二区三区| 国产亚洲一区区二区在线| 色狠狠色狠狠综合一区| 中文字幕人妻无码一区二区三区| 国产精品电影一区二区三区 | 亚洲日本一区二区三区在线不卡| 一本大道在线无码一区| 无码精品视频一区二区三区| 99精品久久精品一区二区| 国产在线步兵一区二区三区| 亚洲色精品VR一区区三区| 一区二区三区亚洲| 免费无码VA一区二区三区| 狠狠综合久久AV一区二区三区 | 精品亚洲一区二区| 中文字幕在线精品视频入口一区| 免费一区二区三区在线视频| 国产一区二区三区日韩精品| 国产伦精品一区二区三区免费迷 | 国内国外日产一区二区| 国产伦一区二区三区高清| 国产免费播放一区二区| 国产色情一区二区三区在线播放| 丰满少妇内射一区| 无码日韩精品一区二区三区免费| 久久人妻av一区二区软件| 日产亚洲一区二区三区| 亚洲天堂一区二区三区| 国产情侣一区二区| 一区二区三区精品高清视频免费在线播放| 国产精品成人一区二区| 精品人妻一区二区三区毛片| 国产一区麻豆剧传媒果冻精品| 国产自产在线视频一区| 中文字幕av日韩精品一区二区| 男人的天堂av亚洲一区2区| 日韩一区二区三区精品| 中文字幕一区二区三区日韩精品| 无码av免费一区二区三区|