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

          軟件下載吧

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

          PostgreSQL長事務概念解析

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

          我們在很多地方應該都聽到過長事務的危害,比方說長事務會導致表膨脹之類的。那么在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综合色区无码一区爱AV| chinese国产一区二区| 成人精品视频一区二区三区不卡| 中文字幕日韩一区| 国产精品一区二区四区| asmr国产一区在线| 海角国精产品一区一区三区糖心| 变态调教一区二区三区| 亚洲一区二区三区亚瑟 | 日本一区二区三区在线网| 亚洲一区二区三区偷拍女厕| 日本一区二区三区免费高清| 久久青草精品一区二区三区| 日本一道一区二区免费看| 搡老熟女老女人一区二区| 国产精品区AV一区二区| 国产精品一区二区四区| 国模精品一区二区三区视频| 91一区二区视频| 一区高清大胆人体| 日本免费一区二区久久人人澡| 一区二区三区AV高清免费波多| 无码aⅴ精品一区二区三区| 亚洲一区二区三区写真| 97一区二区三区四区久久 | 精品久久国产一区二区三区香蕉 | 精品乱码一区内射人妻无码| 日韩精品无码一区二区三区 | 国产午夜精品一区二区三区极品 | 国产乱子伦一区二区三区| 日本一区二区三区不卡视频中文字幕 | 国产乱码精品一区二区三区中文| 在线精品国产一区二区三区| 日本一区二区在线| 成人中文字幕一区二区三区| 国产乱码精品一区二区三区香蕉 | 精品一区二区三区3d动漫| 国产福利一区视频|