原创 PostgreSQL 虛擬列(Generated columns)

PostgreSQL12開始引入了Generated columns,用來創建虛擬列。虛擬列是表達式,表達式中只能引用本表的非 generated column 字段,不可以引用其它表的字段,且必須使用immutable類型的表達

原创 PostgreSQL爲什麼允許用戶自定義統計信息

PostgreSQL10開始支持使用create statistics來自定義統計信息。那麼爲什麼pg允許用戶自己去定義統計信息呢? 首先我們要知道在數據庫中統計信息是什麼?統計信息主要做的事情就是:收集數據庫中對象的詳細信息,並

原创 PostgreSQL創建synonym(兼容oracle)

oracle中支持對創建別名synonym,這個功能在某些場合十分有用。例如,當我們遷移數據庫的時候,如果碰到用戶名衝突的情況,我們可能只好將數據遷移到其它用戶下面,但是在程序中使用到數據庫裏對象的地方就要修改了,這個時候使用sy

原创 PostgreSQL、oracle、mysql中MVCC機制詳解

1、MVCC介紹 1.1、事務隔離級別 MVCC,Multi-version Concurrency Control ,顧名思義指的是多版本併發控制。在介紹MVCC之前我們先來簡單瞭解下事務的隔離級別: read uncommi

原创 PostgreSQL 13新特性:增強GIN索引邏輯推理能力

PostgreSQL13中對gin索引的邏輯推理能力進行了加強: 例子: 分別在pg12和pg13的環境中創建測試表: bill@bill=>create table tt1(id int,info text); CREATE

原创 PostgreSQL兼容oracle rman備份——pg_rman

0、說明 PostgreSQL支持多種備份數據的方式,如:SQL轉儲、文件系統級備份、連續歸檔。但是相較於oracle,oracle自帶的rman備份工具是非常強大的,早就已經支持全量、增量、歸檔的備份模式,支持壓縮等。 post

原创 DM達夢數據庫 創建間隔(interval)分區

oracle11g中引入了間隔分區的功能,通過該功能,可以在輸入相應分區的數據時自動創建相應的分區。 在達夢中我們也可以使用間隔分區,不過需要注意的是達夢中的間隔分區使用有以下限制: 僅支持一級範圍分區創建間隔分區; 只能有一個

原创 PostgreSQL使用hash分組進行分頁優化

我們在使用數據庫進行分頁查詢時,隨着offset過濾的數據越來越多,查詢也會越來越慢,因爲即使你只通過查詢獲取1條記錄也需要遍歷offset過濾掉的數據。 一般來說可以通過在表中建立“位點”的方式去優化這類分頁查詢,但是某些情況下

原创 PostgreSQL內核開發——使用SPI創建C函數

說明: 服務器編程接口(SPI)給予用戶定義C函數編寫者在其函數內運行SQL命令的能力。SPI是一組接口函數,它們可以簡化對解析器、規劃器和執行器的訪問。SPI也做一些內存管理。我們可以使用這些SPI來編寫C函數來實現運行SQL的

原创 PostgreSQL向量計算插件——vops

在主流的OLTP數據庫中,PostgreSQL可以說是十分優秀了。同時在OLAP領域,pg的表現也是越來越好,例如支持並行計算,JIT編譯等等。同時pg還有許多優秀的插件,例如列存插件、LLVM插件。這些使得pg具備了一定的OLA

原创 PostgreSQL實現字符串運算的隱式轉換(兼容oracle)

在oracle中,我們如果對兩個字符串類型的數字進行加減之類的運算,oracle可以自動將其轉換成數值然後進行運算(估計有很多人也碰到過因爲這個隱式轉換導致查詢不走索引之類的問題。。。)。 例如: SQL> select '2'

原创 PostgreSQL數組如何去除交集

PostgreSQL中支持多種類型的數據類型,其中數組類型在pg中也是被頻繁使用的一種,我們可以定義某列爲變長多維數組。 那麼對於不同數組我們怎麼獲取數組的交集,進行去除交集等操作呢? 對於字符串,我們可以使用except來直接進

原创 PostgreSQL file_fdw詳解及使用實踐(使用SQL查詢數據庫日誌)

PostgreSQL的file_fdw模塊允許我們直接從數據庫中來訪問服務器的文件系統中的文件,不過這些文件必須是能夠被COPY FROM讀取的格式。 通過file_fdw創建外部表時可指定的參數有: filename:指定要

原创 PostgreSQL與MySQL開源協議對比

前言 作爲開源數據庫的傑出代表,主要來對比PostgreSQL與MySQL的版權。版權可以理解爲許可(License),直接與開源協議的描述相關,下面來看一下兩者的許可表述。 PostgreSQL許可 PostgreSQL許可是一

原创 神仙打架:PG 和 MySQL 到底哪個更好用?

概述 本文介紹MySQL和PostgreSQL的一些特性對比,讓大家瞭解二者的優劣,更好的做出選擇。當前國內的現狀,互聯網公司使用MySQL的較多,PostgreSQL的使用比例反而不高,但相信看到PG的新特性後,你會愛上她。當然