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

          軟件下載吧

          當前位置:軟件下載吧 > 技術開發 > 數據庫 > postgresql分頁數據重復問題的深入理解

          postgresql分頁數據重復問題的深入理解

          時間:2024-03-11 15:08作者:下載吧人氣:24

          問題背景

          許多開發和測試人員都可能遇到過列表的數據翻下一頁的時候顯示了上一頁的數據,也就是翻頁會有重復的數據。

          如何處理?

          這個問題出現的原因是因為選擇的排序字段有重復,常見的處理辦法就是排序的時候加上唯一字段,這樣在分頁的過程中數據就不會重復了。 關于這個問題文檔也有解釋并非是一個bug。而是排序時需要選擇唯一字段來做排序,不然返回的結果不確定

          排序返回數據重復的根本原因是什么呢?

          經常優化sql的同學可能會發現,執行計劃里面會有Sort Method這個關鍵字,而這個關鍵字就是排序選擇的方法。abase的排序分為三種

          quicksort                       快速排序   
          top-N heapsort  Memory          堆排序
          external merge  Disk            歸并排序

          推測

          分頁重復的問題和執行計劃選擇排序算法的穩定性有關。

          簡單介紹下這三種排序算法的場景:

          在有索引的情況下:排序可以直接走索引。 在沒有索引的情況下:當表的數據量較小的時候選擇快速排序(排序所需必須內存小于work_mem), 當排序有limit,且耗費的內存不超過work_mem時選擇堆排序, 當work_mem不夠時選擇歸并排序。

          驗證推測

          1.創建表,初始化數據

          abase=# create table t_sort(n_int int,c_id varchar(300));
          CREATE TABLE
          abase=# insert into t_sort(n_int,c_id) select 100,generate_series(1,9);
          INSERT 0 9
          abase=# insert into t_sort(n_int,c_id) select 200,generate_series(1,9);
          INSERT 0 9
          abase=# insert into t_sort(n_int,c_id) select 300,generate_series(1,9);
          INSERT 0 9
          abase=# insert into t_sort(n_int,c_id) select 400,generate_series(1,9);
          INSERT 0 9
          abase=# insert into t_sort(n_int,c_id) select 500,generate_series(1,9);
          INSERT 0 9
          abase=# insert into t_sort(n_int,c_id) select 600,generate_series(1,9);
          INSERT 0 9

          標簽[db:關鍵字]

          相關下載

          查看所有評論+

          網友評論

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

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 亚洲午夜精品第一区二区8050 | 精品久久久久一区二区三区| 精品国产日韩亚洲一区在线| 亚洲av无码一区二区三区天堂古代 | 亚洲AV一区二区三区四区| 国产精品分类视频分类一区| 亚洲精品日韩一区二区小说| 国产丝袜无码一区二区视频| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 成人无码精品一区二区三区| 青娱乐国产官网极品一区 | 久久一区二区免费播放| 国产成人AV一区二区三区无码| 无码中文人妻在线一区二区三区| chinese国产一区二区| 末成年女AV片一区二区| 日韩AV无码一区二区三区不卡| 大伊香蕉精品一区视频在线| 99热门精品一区二区三区无码 | 国产丝袜一区二区三区在线观看| 国产在线一区二区| 国产一区二区不卡老阿姨| 午夜在线视频一区二区三区 | 精品国产AⅤ一区二区三区4区| 中文字幕Av一区乱码| 天堂Av无码Av一区二区三区| 国产精品一区二区久久乐下载| 国产精品第一区揄拍无码| 国产精品熟女视频一区二区 | 国产伦精品一区二区三区视频小说| 日本美女一区二区三区| 日韩在线不卡免费视频一区| 一区二区不卡视频在线观看| 国产91大片精品一区在线观看| 精品国产一区二区三区久久狼 | 国产一区二区三区夜色| 国产成人精品无人区一区| 中日av乱码一区二区三区乱码| 亚洲一区爱区精品无码| 国产精品av一区二区三区不卡蜜| 成人精品一区二区电影 |