–資料庫中單個表的大小(不包含索引)
select pg_size_pretty(pg_relation_size(
'表名'))
;
–查出所有表(包含索引)並排序
select table_schema ||
'.'|| table_name as table_full_name, pg_size_pretty(pg_total_relation_size(
'"'|| table_schema ||
'"."'
|| table_name ||
'"')
)as size
from information_schema.
tables
order
bypg_total_relation_size(
'"'|| table_schema ||
'"."'
|| table_name ||
'"')
desc
limit
20
–查出表大小按大小排序並分離data與index
select
table_name,
pg_size_pretty(table_size)
as table_size,
pg_size_pretty(indexes_size)
as indexes_size,
pg_size_pretty(total_size)
as total_size
from
(select
table_name,
pg_table_size(table_name)
as table_size,
pg_indexes_size(table_name)
as indexes_size,
pg_total_relation_size(table_name)
as total_size
from
(select
('"'
|| table_schema ||
'"."'
|| table_name ||
'"')
as table_name
from information_schema.
tables
)as all_tables
order
by total_size desc
)as pretty_sizes
檢視資料庫中各個資料庫佔磁碟的大小:
select d.datname as name, pg_catalog.pg_get_userbyid(d.datdba)
as owner,
case
when pg_catalog.has_database_privilege(d.datname,
'connect'
)then pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname)
)else
'no access'
endas size
from pg_catalog.pg_database d
order
bycase
when pg_catalog.has_database_privilege(d.datname,
'connect'
)then pg_catalog.pg_database_size(d.datname)
else
null
enddesc
統計資料庫中各表占用磁碟大小:
select
table_schema ||
'.'|| table_name as table_full_name,
pg_size_pretty(pg_total_relation_size(
'"'|| table_schema ||
'"."'
|| table_name ||
'"')
)as size
from information_schema.
tables
order
by pg_total_relation_size(
'"'|| table_schema ||
'"."'
|| table_name ||
'"')
desc
如果表中的字段是大文字(text)時,所計算出來的表占用空間不足以表示該錶的資料占用的空間,因為text文字資料實際是儲存在資料庫的 pg_largeobject 表中,而自己建的表中的text型別記錄的是liod,即pg_largeobject 中的loid字段值。 PostgreSQL大表拆分方法
資料庫中單錶如果很大,會帶來很多管理個使用上的不便和問題,因此一般大表都建議進行分割槽,這也是比較常見的將大表拆分的方法,在pg中還可以直接對資料檔案進行操作來實現大表拆分。例子 1 建立實驗表,插入資料 這裡需要注意避免使用toast表 bill create table tt1 c1 int c...
PostgreSQL查詢表中是否存在值的優化
postgresql查詢表中是否存在值的優化 經常會碰到這麼乙個應用 往表裡更新資料前先查詢一遍被更新的資料存不存在。通常我們的做法是使用select 查詢過濾一遍,然後再決定是否更新,怎麼更新。在pg庫里,除了以上方法外,還有一種更能提公升效能的辦法,使用perform來代替select。exam...
PostgreSQL的查詢優化
postgresql 的查詢優化 資料庫管理系統中的 sql執行,有多種多樣,從 sql語句型別上講,有 ddl dml dql dcl。不同語句,被資料庫引擎執行,其執行方式 複雜程度都不相同。其中,最為複雜的,是 dql,查詢語句。查詢語句的執行,在資料庫中,又可以分為 2個階段,一是查詢計畫的...