PostgreSQL

父主題

資料庫
PostgreSQL

PostgreSQL DBA(95) - PG 12 Partition(out of shared memory)

PostgreSQL 12 Beta3,建立包含8192個子分割槽的分割槽表,執行查詢語句,在分割槽鍵上排序,出錯。資料庫版本:[local]:5432 [email protected]=# select ve
PostgreSQL

PostgreSQL掃描方法綜述

PostgreSQL掃描方法綜述 關係型資料庫都需要產生一個最佳的執行計劃從而在查詢時耗費的時間和資源最少。通常情況下,所有的資料庫都會產生一個以樹形式的執行計劃:計劃樹的葉子節點被稱為表掃描節點。查
PostgreSQL

PostgreSQL DBA(94) - PG 12 Improving Partition(Select)

PG 10在分割槽表上執行查詢時,會逐個檢查每個分割槽的約束來看是否需要,如果分割槽很多在計劃階段會有較大的效能損失。PG 11通過”partition pruning“演算法來快速的標識匹配的分割槽
PostgreSQL

PostgreSQL DBA(93) - PG 12 Improving Partition(Insert)

PG 11在插入分割槽表時,無論涉及多少個分割槽都會鎖住每個分割槽,如果分割槽數很多,會存在效能問題.在PG 12,只需要對涉及的分割槽上鎖,也就是說如果只插入一行,則只需要鎖一個分割槽.這種變化還與
PostgreSQL

PostgreSQL 原始碼解讀(228)- Transaction(事務系統簡介)

本節是PostgreSQL 事務管理的簡要說明,翻譯自README檔案.一、The Transaction SystemREADMEsrc/backend/access/transam/READMET
Linux|PostgreSQL

PostgreSQL 原始碼解讀(227)- Linux Kernel(程式虛擬記憶體#2)

PostgreSQL使用程式架構,每個連線對應一個後臺程式,為了更好的理解這種架構,有必要深入理解程式的相關知識.本節主要介紹了Linux下的程式虛擬記憶體結構,並以使用C語言樣例程式進行說明.一、虛
PostgreSQL

PostgreSQL DBA(92) - PG 12 Improving VACUUM

VACUUM命令在PG 12有所增強,提供新的Option可供選擇,本節介紹了其中一個選項:INDEX_CLEANUPPG 11 vacuum命令[[email protected] ~]$ psql -d
PostgreSQL

PostgreSQL DBA(91) - PG upgrade

PostgreSQL的大版本釋出週期通常為1年,而PostgreSQL 12即將釋出,新版本除了修復了Bug,提供了新特性之外還對效能有所增強,對於使用舊版本但希望升級到新版本的資料庫,本節介紹了PG
Linux|PostgreSQL

PostgreSQL 原始碼解讀(226)- Linux Kernel(虛擬記憶體)

PostgreSQL使用程式架構,每個連線對應一個後臺程式,為了更好的理解這種架構,有必要深入理解程式的相關知識.本節主要介紹了Linux下的程式虛擬記憶體結構.一、虛擬記憶體虛擬記憶體是一種通過軟硬
Linux|PostgreSQL

PostgreSQL DBA(90) - Linux(stress-ng簡介)

本節簡單介紹了可用於Linux平臺下的壓力測試工具stress-ng.安裝很簡單,在CentOS下,通過yum -y install stress-ng即可安裝此工具.安裝成功後,執行man stre
Linux|PostgreSQL

PostgreSQL DBA(89) - Linux(Buffer vs Cache)

本節簡單介紹了Linux記憶體管理中兩個容易混淆的概念:Buffer和Cache.在Linux中,一般使用free命令檢視記憶體的使用情況[[email protected] ~]# free
PostgreSQL

PostgreSQL 原始碼解讀(225)- Transaction(子事務處理)

本節是PostgreSQL 事務管理中的關於子事務部分的說明,翻譯自README檔案.一、Subtransaction HandlingREADMESubtransaction Handling---
PostgreSQL

PostgreSQL WAL解析:構建WAL記錄準備

以heap_insert為例,簡述WAL的插入過程。在構建WAL日誌記錄的過程中主要涉及2個資料變數:static XLogRecData rdatas陣列和static registered_buf
Linux|PostgreSQL

PostgreSQL DBA(88) - Linux(CPU使用率 vs 平均負載)

Linux已成為事實上企業級伺服器OS的首選,PostgreSQL在Linux上的”裝機量”不在少數,在對資料庫的效能進行優化和調整時,同時也必須考慮到Linux的優化和調整.本節簡單介紹了Linux
PostgreSQL

PostgreSQL 原始碼解讀(223)- Locks(Fast Path Locking)

本節是PostgreSQL Locks中的Fast Path Locking部分,翻譯自README檔案.PG提供的系統表pg_locks中有一個欄位:fastpath,用以表示是否fastpath,
PostgreSQL

PostgreSQL 原始碼解讀(222)- Locks(Lock Manager Internal Locking)

本節是PostgreSQL Locks中的Lock Manager Internal Locking部分,翻譯自README檔案.一、Lock Manager Internal LockingLock
PostgreSQL

PostgreSQL 原始碼解讀(221)- Locks(PROCLOCK Struct)

本節是PostgreSQL Locks中介紹PROCLOCK結構體部分,翻譯自README檔案.一、PROCLOCK Struct/* * We may have several different
PostgreSQL

PostgreSQL 原始碼解讀(220)- Locks(LOCK Struct)

本節是PostgreSQL Locks中介紹LOCK結構體部分,翻譯自README檔案.一、LOCK Struct/* * The LOCKTAG struct is defined with mal
PostgreSQL

PostgreSQL 原始碼解讀(219)- Locks(Overview)

本節是PostgreSQL Locks的概要部分,翻譯自README檔案.一、Overviewsrc/backend/storage/lmgr/READMELocking Overview======
PostgreSQL

PostgreSQL DBA(87) - benchmarksql簡介

benchmarksql是一款使用Java開發的測試工具.安裝使用相對比較簡單,下載解壓到安裝目錄cd /home/pg12/software/benchmarksql-4.1.1/run配置引數,修
PostgreSQL

postgresql dba常用sql查詢語句

檢視幫助命令DB=# help --總的幫助DB=# \h --SQL commands級的幫助DB=# \? --psql commands級的幫助按列顯示,類似mysql的\GDB=# \xExp
PostgreSQL

PostgreSQL DBA(86) - Table Parameter(fillfactor)

本節介紹了PostgreSQL建立資料表時的引數fillfactor,該引數限制了插入資料時序預留多少空閒空間(比例),對於資料表來說預設值為100,索引是90,其解釋如下:tableThe fill
PostgreSQL

PostgreSQL 原始碼解讀(217)- A Faster, Lightweight Trigger Function in C

本節介紹瞭如何使用C語言實現效能更高的輕量級觸發器.主要內容翻譯自A Faster, Lightweight Trigger Function in C for PostgreSQL一、實現步驟已在C
PostgreSQL

PostgreSQL 行安全策略

行安全策略除可以通過GRANT使用 SQL 標準的 特權系統之外,表還可以具有 行安全性策略,它針對每一個使用者限制哪些行可以 被普通的查詢返回或者可以被資料修改命令插入、更新或刪除。這種 特性也被稱
PostgreSQL

Oracle vs PostgreSQL Develop(17) - ARRAY

PostgreSQL可用ARRAY來替代Oracle中的collection type,包括associative array/Varrays (Variable-Size Arrays)/Neste
PostgreSQL

PostgreSQL DBA(85) - Locks(lightweight locks)

本節介紹了PostgreSQL中的lightweight locks.Lightweight locks (LWLocks). These locks are typically used toin
PostgreSQL

Oracle vs PostgreSQL Develop(16) - Prepared Statement

對於除繫結變數外其餘相同的SQL語句,PostgreSQL提供了Prepared Statement用於快取Plan,以達到Oracle中cursor_sharing=force的目的.PSQL通過p
PostgreSQL

Oracle vs PostgreSQL Develop(15) - DISTINCT ON

平時在客戶業務的資料分析中,經常有這麼一種需求,那就是希望得到某個組裡面某些欄位最大或最小的記錄.比如僱員表:[local]:5432 [email protected]=# \d employee
PostgreSQL

PostgreSQL DBA(84) - Extension(pg_prewarm)

使用pg_prewarm外掛可”預熱”資料.安裝pg_prewarm[[email protected] pg_prewarm]$ makemake -C ../../src/backend generat