日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

系統(tǒng)頁面緩存也會(huì)影響數(shù)據(jù)庫的運(yùn)行性能,你相信嗎?

來源: 責(zé)編: 時(shí)間:2024-03-29 09:23:07 192觀看
導(dǎo)讀 本文轉(zhuǎn)載自微信公眾號(hào)「紅石PG」,作者紅石PG。介紹您有沒有遇到這樣的問題:已經(jīng)重啟了 PostgreSQL 服務(wù)器,但是第二次運(yùn)行同樣的查詢?nèi)匀豢斓枚啵@是為什么?這個(gè)問題的答案很簡單,因?yàn)橹匦聠?dòng)數(shù)據(jù)庫服務(wù)器只會(huì)清除數(shù)據(jù)庫
 本文轉(zhuǎn)載自微信公眾號(hào)「紅石PG」,作者紅石PG

介紹

您有沒有遇到這樣的問題:已經(jīng)重啟了 PostgreSQL 服務(wù)器,但是第二次運(yùn)行同樣的查詢?nèi)匀豢斓枚啵@是為什么?tus28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)問題的答案很簡單,因?yàn)橹匦聠?dòng)數(shù)據(jù)庫服務(wù)器只會(huì)清除數(shù)據(jù)庫緩沖區(qū)的緩存,但是其他緩存沒有變化,這些緩存是:tus28資訊網(wǎng)——每日最新資訊28at.com

緩沖區(qū)緩存 - PostgreSQL 從磁盤加載包含表和索引的頁面的共享緩沖池,以直接從內(nèi)存工作,從而減少磁盤訪問。tus28資訊網(wǎng)——每日最新資訊28at.com

頁面緩存 - 操作系統(tǒng)通常會(huì)緩存文件 IO,除非您通過使用 O_DIRECT 標(biāo)志,或者以直接 IO 模式掛載文件系統(tǒng),來顯式跳過頁面緩存。tus28資訊網(wǎng)——每日最新資訊28at.com

硬件緩存 - CPU 狀態(tài)緩存可能會(huì)輕微地影響到查詢執(zhí)行速度,但硬件 IO 緩存可能會(huì)造成巨大影響。其中一個(gè)是硬件 RAID 緩存,但更重要的是 SAN 緩存,它可能影響非常大。tus28資訊網(wǎng)——每日最新資訊28at.com

準(zhǔn)備工作

讓我們通過一個(gè)示例來更好地了解,頁面緩存會(huì)如何影響查詢性能。tus28資訊網(wǎng)——每日最新資訊28at.com

假設(shè)我們有一個(gè)名為t1的表:tus28資訊網(wǎng)——每日最新資訊28at.com

CREATE TABLE t1 (id integer, str text);

下面是用于生成數(shù)據(jù)的示例 SQL 查詢:tus28資訊網(wǎng)——每日最新資訊28at.com

我們已經(jīng)給此表填充了數(shù)百萬行示例數(shù)據(jù)。tus28資訊網(wǎng)——每日最新資訊28at.com

頁面緩存示例

在我們觀察頁面緩存對(duì)查詢性能的影響之前,我們需要先停止 PostgreSQL 服務(wù)器,首先以 root 帳戶清理系統(tǒng)頁面緩存:tus28資訊網(wǎng)——每日最新資訊28at.com

# echo 3 > /proc/sys/vm/drop_caches

然后,啟動(dòng) PostgreSQL 服務(wù)器。tus28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在,假設(shè)我們要檢索總共的記錄數(shù):tus28資訊網(wǎng)——每日最新資訊28at.com

SET max_parallel_workers_per_gather TO 0;PLAIN (analyze, buffers) SELECT count(*) FROM t1;                                                     QUERY PLAN-------------------------------------------------------------------------------------------------------------------- Aggregate  (cost=32909.00..32909.01 rows=1 width=8) (actual time=439.977..439.978 rows=1 loops=1)   Buffers: shared read=20409   ->  Seq Scan on t1  (cost=0.00..30409.00 rows=1000000 width=0) (actual time=0.244..349.652 rows=1000000 loops=1)         Buffers: shared read=20409 Planning:   Buffers: shared hit=13 read=6 Planning Time: 3.522 ms Execution Time: 440.979 ms(8 rows)

表現(xiàn)很好。讓我們重新啟動(dòng) PostgreSQL 服務(wù)器。tus28資訊網(wǎng)——每日最新資訊28at.com

實(shí)際上,我們可以通過 pgfincore 來查看頁面緩存的統(tǒng)計(jì)信息。tus28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在,讓我們?cè)俅螜z索記錄總數(shù),看看它會(huì)如何影響性能:tus28資訊網(wǎng)——每日最新資訊28at.com

SET max_parallel_workers_per_gather TO 0;EXPLAIN (analyze, buffers) SELECT count(*) FROM t1;                                                     QUERY PLAN-------------------------------------------------------------------------------------------------------------------- Aggregate  (cost=32909.00..32909.01 rows=1 width=8) (actual time=199.904..199.906 rows=1 loops=1)   Buffers: shared read=20409   ->  Seq Scan on t1  (cost=0.00..30409.00 rows=1000000 width=0) (actual time=1.131..113.739 rows=1000000 loops=1)         Buffers: shared read=20409 Planning:   Buffers: shared hit=13 read=6 Planning Time: 0.413 ms Execution Time: 199.955 ms(8 rows)

現(xiàn)在查詢性能明顯更好。我們已將執(zhí)行時(shí)間縮短了兩倍以上!tus28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-80342-0.html系統(tǒng)頁面緩存也會(huì)影響數(shù)據(jù)庫的運(yùn)行性能,你相信嗎?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Node.js 新官網(wǎng)為何選用了 Next.js?

下一篇: 大型企業(yè)通常如何進(jìn)行單元測(cè)試?

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 阿拉善盟| 广安市| 仙游县| 宁陕县| 丹阳市| 巴里| 麻城市| 皋兰县| 儋州市| 西乌珠穆沁旗| 建宁县| 阿拉尔市| 富宁县| 临城县| 宜章县| 集贤县| 陆丰市| 桓仁| 固阳县| 婺源县| 南漳县| 陆良县| 玉门市| 永善县| 龙里县| 四会市| 丰城市| 旌德县| 梅河口市| 历史| 吉木萨尔县| 平罗县| 昭平县| 兴城市| 奇台县| 乐平市| 林周县| 阿巴嘎旗| 恩施市| 景宁| 新河县|