91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL如何使用系統OS cache 提升查詢性能

發布時間:2021-12-09 09:53:15 來源:億速云 閱讀:145 作者:柒染 欄目:大數據

今天就跟大家聊聊有關PostgreSQL如何使用系統OS cache 提升查詢性能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

今天我們就來說說一個PG的擴展 pgfincore 讓這個擴展來為我們更完善相關的服務和緩存狀態的展示,pgfincore是2ndQuadrant 公司,一家專門為的開源插件。

下面其他的先不講,先看這個插件能幫助我們做些什么,在講其他的。

下圖很清楚的顯示了,一個300萬行的表在系統中經歷了2次 count的操作大致使用的時間,按照一般的數據庫系統來說,我第一次查詢和第二次查詢如果查詢語句是一致的,那第二次的速度應該比第一次快,因為我緩存了查詢的語句和結果之間的對應關系(當然這里也有其他的情況,不在展開)。

圖中我們使用pgfincore插件中的一個,將表或索引預裝入到OS 緩存層面的功能,我們再次查詢,發現比第二次的速度還快,僅僅300萬的數據使用82毫秒。這說明我們將表或索引提升至OS的緩存中,對查詢的加速是有效的嗎,即使我們用不上什么索引,或沒有所以的情況下。

PostgreSQL如何使用系統OS cache 提升查詢性能

select * from pgsysconf();

PostgreSQL如何使用系統OS cache 提升查詢性能

通過pgsyusconf() 可以查看當前系統的OS 控制的頁面有多少,剩余多少。在通過這個插件可以很清晰的指導,當然我們缺少不缺少系統OS層面的緩存。(缺不缺 OS 系統緩存的問題我們可以解決了)

當然我們通過

select * from pgfincore('test'); 可以看到一個表的DISK 與OS PAGE 之間的對應的關系,

PostgreSQL如何使用系統OS cache 提升查詢性能

下面做一個實驗來證明,加載和不加載OS 內存的情況下,到底有什么區別,下圖中包含了15次頻繁的對一個表的 select * from 表 limit 10;的操作

PostgreSQL如何使用系統OS cache 提升查詢性能

總體的數據在0.6986秒

我們在加載了OS 系統緩存后,我們在做15次

PostgreSQL如何使用系統OS cache 提升查詢性能

顯示總體30次的查詢事假在0.9625秒,那加載后查詢的15次的時間是

0.9625 - 0.6986 = 0.2639 秒 也就是說大致節省了 3分之二2 強的時間。

另外在前幾期中講了pg_rewarm 插件,可以在系統重啟之后進行類似MYSQL的 將系統重啟動之前的數據灌入到INNODB BUFFER POOL中,但我們忽略了另一個問題,就是MYSQL 以及其他數據庫是沒有OS 緩存利用這么一說的,所以POSTGRESQL 如果你在重啟后還可以考慮對部分數據,怎么快速的緩沖到 OS 的緩沖的事情。實際上在做了幾個測試后,讓我打消了使用pgfadvise_loader的想法,因為提升到速度只在第一次有效,另外如果是生產機有多少機會會經常重啟,如果是測試機,有必要勞心勞力的作這個事情。

當然如果你感興趣可以看一下官方的文檔,關注一下 pgfadvise_loader可以滿足你嫉妒優化的想法。

下面整理了一下相關的一些命令

1 select * from pgsysconf_pretty();

得到你系統的OS層面的緩沖信息

2 select * from pgfadvise_willneed('表名');

加載索引或表到OS CACHE 層面

3 select * from pgfadvise_dontneed('p表名');

卸載表的內容從OS CACHE 層面

看完上述內容,你們對PostgreSQL如何使用系統OS cache 提升查詢性能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

日土县| 康定县| 涿州市| 庄浪县| 嘉定区| 蕉岭县| 濮阳市| 东安县| 通化市| 左云县| 清原| 黄龙县| 中江县| 徐汇区| 深水埗区| 凯里市| 崇义县| 盐池县| 邮箱| 上杭县| 封开县| 太白县| 通榆县| 周至县| 南开区| 石城县| 慈利县| 南丹县| 宜州市| 宣汉县| 大邑县| 高台县| 克拉玛依市| 界首市| 罗源县| 鄂托克前旗| 霍邱县| 城市| 屏山县| 宁乡县| 新巴尔虎左旗|