PostgreSQL 中 pg_stat_database 視圖的 tup_returned 字段的含義詳解
此篇詳細(xì)解釋一下 PostgreSQL 中 pg_stat_database 視圖里的 tup_returned 字段的含義。
核心定義
tup_returned 字面意思是 “返回的元組數(shù)”。
這里的“元組”可以通俗地理解為 數(shù)據(jù)表中的一行。
因此,tup_returned 統(tǒng)計(jì)的是 從數(shù)據(jù)庫(kù)中讀取到的行數(shù)。
詳細(xì)解釋
- 統(tǒng)計(jì)的是什么?
- 它統(tǒng)計(jì)的是由 所有類型的查詢(SELECT, UPDATE, DELETE 等) 所訪問(wèn)到的行數(shù)。
- 例如:
- 一個(gè)
SELECT * FROM table_name查詢,返回了 100 行,那么這 100 就會(huì)被累加到tup_returned中。 - 一個(gè)
UPDATE table_name SET column = value語(yǔ)句,它需要先找到所有要更新的行(類似于一個(gè) SELECT),假設(shè)它匹配了 50 行,那么這 50 行也會(huì)被累加到tup_returned中,即使它最終更新了這些行(更新操作本身由tup_updated統(tǒng)計(jì))。 - 同樣,
DELETE語(yǔ)句在刪除前也需要先找到這些行,所以找到的行數(shù)也會(huì)計(jì)入tup_returned。
- 一個(gè)
- 統(tǒng)計(jì)范圍:
- 這個(gè)統(tǒng)計(jì)是 數(shù)據(jù)庫(kù)級(jí)別 的。
pg_stat_database視圖中的這個(gè)值,是該 PostgreSQL 集群中 單個(gè)數(shù)據(jù)庫(kù) 的累計(jì)值。它包含了該數(shù)據(jù)庫(kù)內(nèi)所有表、所有查詢所返回的行數(shù)總和。
- 這個(gè)統(tǒng)計(jì)是 數(shù)據(jù)庫(kù)級(jí)別 的。
- 與
tup_fetched的區(qū)別:- 在
pg_stat_database中,還有一個(gè)容易混淆的字段叫tup_fetched。 tup_returned: 主要由 順序掃描 返回的行數(shù)。當(dāng)數(shù)據(jù)庫(kù)沒(méi)有使用索引,需要全表掃描來(lái)查找數(shù)據(jù)時(shí),讀取的每一行都計(jì)入此項(xiàng)。tup_fetched: 主要由 索引掃描 返回的行數(shù)。當(dāng)數(shù)據(jù)庫(kù)通過(guò)索引查找到數(shù)據(jù)行時(shí),通過(guò)索引“獲取”到的每一行都計(jì)入此項(xiàng)。
- 在
- 簡(jiǎn)單總結(jié):
tup_returned≈ 順序掃描讀到的行數(shù)tup_fetched≈ 索引掃描讀到的行數(shù)
實(shí)踐意義與使用場(chǎng)景
tup_returned 是一個(gè)非常重要的宏觀性能指標(biāo):
- 衡量數(shù)據(jù)庫(kù)負(fù)載: 這個(gè)值在持續(xù)、快速地增長(zhǎng),說(shuō)明數(shù)據(jù)庫(kù)正在處理大量的數(shù)據(jù)讀取請(qǐng)求。通過(guò)觀察其增長(zhǎng)速度,可以直觀了解數(shù)據(jù)庫(kù)的繁忙程度。
- 分析讀取模式: 結(jié)合
tup_returned和tup_fetched,可以判斷數(shù)據(jù)庫(kù)的查詢效率。- 如果
tup_returned的值遠(yuǎn)高于tup_fetched,說(shuō)明有大量的查詢正在進(jìn)行全表掃描,這可能意味著 缺少合適的索引。 - 一個(gè)健康的、以O(shè)LTP(在線事務(wù)處理)為主的數(shù)據(jù)庫(kù),通常
tup_fetched會(huì)遠(yuǎn)大于tup_returned,因?yàn)榇蟛糠植樵兌紤?yīng)該通過(guò)索引來(lái)快速定位數(shù)據(jù)。
- 如果
- 監(jiān)控長(zhǎng)期趨勢(shì): 通過(guò)定期記錄這個(gè)值,可以了解數(shù)據(jù)訪問(wèn)量的變化趨勢(shì),為容量規(guī)劃提供依據(jù)。
示例查詢
可以通過(guò)以下 SQL 語(yǔ)句查看所有數(shù)據(jù)庫(kù)的統(tǒng)計(jì)信息:
SELECT
datname AS database_name,
tup_returned,
tup_fetched,
tup_inserted,
tup_updated,
tup_deleted
FROM
pg_stat_database;
結(jié)果解讀:
假設(shè)看到某個(gè)數(shù)據(jù)庫(kù)的 tup_returned 是 10,000,000,而 tup_fetched 是 500,000。這強(qiáng)烈暗示該數(shù)據(jù)庫(kù)中存在效率低下的全表掃描查詢,應(yīng)該去檢查一下慢查詢?nèi)罩?,并為頻繁查詢的字段添加索引。
總結(jié)
| 特性 | 說(shuō)明 |
|---|---|
| 中文名 | 返回的元組數(shù) |
| 本質(zhì) | 從數(shù)據(jù)庫(kù)中讀取到的行數(shù)(累計(jì)值) |
| 主要來(lái)源 | 順序掃描(全表掃描) |
| 對(duì)比指標(biāo) | tup_fetched(主要來(lái)自索引掃描) |
| 主要用途 | 評(píng)估數(shù)據(jù)庫(kù)負(fù)載、分析查詢效率(判斷是否缺少索引) |
簡(jiǎn)單來(lái)說(shuō),tup_returned 就是一個(gè)說(shuō)明“數(shù)據(jù)庫(kù)自從啟動(dòng)以來(lái),總共讀取了多少行數(shù)據(jù)”的計(jì)數(shù)器。它是一個(gè)非常重要的、用于宏觀性能分析和診斷的指標(biāo)。
到此這篇關(guān)于PostgreSQL 中 pg_stat_database 視圖的 tup_returned 字段的含義詳解的文章就介紹到這了,更多相關(guān)PostgreSQL pg_stat_database tup_returned 字段內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Postgresql psql文件執(zhí)行與批處理多個(gè)sql文件操作
這篇文章主要介紹了Postgresql psql文件執(zhí)行與批處理多個(gè)sql文件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
postgreSQL數(shù)據(jù)庫(kù)基本概念教程
這篇文章主要為大家介紹了postgreSQL數(shù)據(jù)庫(kù)的基本概念教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
PostgreSQL ROW_NUMBER() OVER()的用法說(shuō)明
這篇文章主要介紹了PostgreSQL ROW_NUMBER() OVER()的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
PostgreSQL中insert_username的擴(kuò)展使用
insert_username?是 PostgreSQL 的一個(gè)實(shí)用擴(kuò)展,用于自動(dòng)記錄數(shù)據(jù)行的創(chuàng)建者和最后修改者信息,本文就來(lái)詳細(xì)的介紹一下insert_username擴(kuò)展,感興趣的可以了解一下2025-06-06
Ubuntu中卸載Postgresql出錯(cuò)的解決方法
這篇文章主要給大家介紹了關(guān)于在Ubuntu中卸載Postgresql出錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Navicat連接postgresql時(shí)出現(xiàn)'datlastsysoid?does?not?exist&
這篇文章主要給大家介紹了關(guān)于Navicat連接postgresql時(shí)出現(xiàn)'datlastsysoid?does?not?exist'報(bào)錯(cuò)問(wèn)題的完美解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
docker安裝Postgresql數(shù)據(jù)庫(kù)及基本操作
PostgreSQL是一個(gè)強(qiáng)大的開(kāi)源對(duì)象-關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),以其高可擴(kuò)展性和標(biāo)準(zhǔn)化而著稱,這篇文章主要介紹了docker安裝Postgresql數(shù)據(jù)庫(kù)及基本操作的相關(guān)資料,需要的朋友可以參考下2025-03-03
PostgreSQL 分頁(yè)查詢時(shí)間的2種比較方法小結(jié)
這篇文章主要介紹了PostgreSQL 分頁(yè)查詢時(shí)間的2種比較方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12

