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

          軟件下載吧

          當前位置:軟件下載吧 > 技術開發 > 數據庫 > PostgreSQL長事務與失效的索引查詢淺析介紹

          PostgreSQL長事務與失效的索引查詢淺析介紹

          時間:2024-02-09 10:40作者:下載吧人氣:24

          最近剛寫了一篇文章介紹了下長事務,以及一些長事務常見的危害,如無法及時的垃圾回收導致表膨脹之類的問題,最近剛好又碰到一個問題也是長事務所導致的。

          上周六早上接到同事電話,說某個庫CPU一直很高,看了下全是某張大表的全表掃描導致,但是奇怪的是相關的查詢都有用到索引列,不知道為啥查詢全部都沒走索引。

          當我連上去查看時發現確實如此,如果只是某個查詢不走索引那可能是SQL本身寫的有問題,但是這張表相關的所有SQL都不走索引,那自然會想到是索引本身的原因了。那是不是索引失效了呢?經過檢查發現這張表上的索引狀態均正常,并且我還將索引重建了,可仍然沒起作用。

          正當我迷茫的時候,偶然間再去執行相關SQL的時候發現竟然又都走索引了,這又是啥情況。。

          我啥都沒做你就自己恢復了,那不是顯得我很呆?不行,必須得搞清楚啥原因。

          當我再去查看相關索引的時候發現,該索引的pg_index中的indcheckxmin列均為true,這個字段我之前有寫過一篇索引失效的文章里介紹過。那么什么情況下索引的該屬性會被設置為true呢?兩種情況:

          1. 當前事務中表上存在broken HOT chains;
          2. 當old_snapshot_threshold被設置時。

          之前我們也介紹過,如果索引的該屬性為true那么在創建索引的事務中該索引是不可用的,不過這種場景我們基本不太會遇到,因為在實際應用中我們基本不會在事務中創建完索引然后不提交該事務直接去使用。

          而關于indcheckxmin的詳細解釋是:直到此pg_index行的xmin低于查詢的TransactionXmin之前,查詢都不能使用此索引。那么什么情況下會出現這種問題呢?長事務!

          當我們創建索引的時候如果索引的indcheckxmin被設置為true,且數據庫中此時存在長事務,那么直到該長事務提交前,該索引會一直不可用。

          下面我們來模擬這種情況:

          –會話一:打開一個長事務

          bill=# begin;
          BEGIN
          bill=*# delete from t;
          DELETE 1000
          bill=*#
          標簽[db:關鍵字]

          相關下載

          查看所有評論+

          網友評論

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

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 一区国产传媒国产精品| 国产福利视频一区二区| 国99精品无码一区二区三区| 国产一区精品视频| 中文字幕一区二区视频| 香蕉久久一区二区不卡无毒影院| 国产情侣一区二区三区| 亚洲色大成网站www永久一区| 一区二区三区波多野结衣 | 无码人妻久久一区二区三区免费| 亚洲国产激情一区二区三区 | 日韩精品一区二区三区中文3d| 亚洲天堂一区二区三区四区| 国产经典一区二区三区蜜芽| 精品视频一区二区三区在线播放| 亚洲福利精品一区二区三区| 麻豆天美国产一区在线播放| 成人欧美一区二区三区在线视频| 中文字幕一区在线播放| 精产国品一区二区三产区| 亚洲色婷婷一区二区三区| 春暖花开亚洲性无区一区二区| 精品国产亚洲一区二区三区| 无码少妇一区二区三区芒果| 91久久精品一区二区| 嫩B人妻精品一区二区三区| 一区二区三区在线播放| 亚洲熟女综合色一区二区三区| 精品国产日产一区二区三区 | 亚洲AV无码一区二区三区久久精品 | 精品深夜AV无码一区二区| 亚洲国产精品第一区二区三区| 蜜桃AV抽搐高潮一区二区| 精品国产a∨无码一区二区三区| 一区二区三区伦理高清| 国产福利一区二区在线视频| 国产一区二区三区在线电影| 综合一区自拍亚洲综合图区| 国产精品一区二区久久| 国产成人精品一区二三区熟女| 中文字幕无码不卡一区二区三区|