介紹 HypoPG,PostgreSQL 的假設索引

發表於 2015-06-24,作者:Dalibo

巴黎,2015 年 6 月 24 日

DALIBO 很榮幸地推出 HypoPG 的第一個版本,這是一個在 PostgreSQL 中添加假設索引的擴展。

假設索引是指不存在於磁碟上的索引。 因此,它的創建幾乎是即時的,並且不會增加任何 I/O 成本,無論是在創建時還是在維護時。 明顯的目標是在花費太多時間、I/O 和磁碟空間來創建索引之前,檢查索引是否有用。

使用此擴展,您可以創建假設索引,然後使用 EXPLAIN 檢查 PostgreSQL 是否會使用它們。

如果我在這裡有一個索引會怎麼樣?

您是否曾經想知道索引將如何提高伺服器的性能,但您無法抽出時間在磁碟上創建它,只是為了嘗試一下?

以下是 HypoPG 如何提供幫助

首先,讓我們創建一個簡單的用例

# CREATE TABLE testable 
#   AS SELECT id, 'line ' || id val 
#   FROM generate_series(1,1000000) id;
# ANALYZE testable ;

現在讓我們安裝 HypoPG 並在此新表上創建一個假設索引

# CREATE EXTENSION hypopg;
# SELECT hypopg_create_index('CREATE INDEX ON testable (id)');

您現在可以使用 EXPLAIN(不含 ANALYZE)來檢查 PostgreSQL 是否會使用該索引!

# EXPLAIN SELECT * FROM testable WHERE id = 1000 ;
                                          QUERY PLAN
-----------------------------------------------------------------------------------------------
 Index Scan using 41079_btree_testable_id on testable  (cost=0.05..8.07 rows=1 width=15)
   Index Cond: (id = 1000)
(2 rows)

耶! 如果 'id' 列上有索引,PostgreSQL 將會利用它!

連結

關於 DALIBO

DALIBO 是法國領先的 PostgreSQL 公司,自 2005 年以來一直為其客戶提供支援、培訓和諮詢。該公司以各種方式為 PostgreSQL 社群做出貢獻,包括:程式碼、文章、翻譯、免費會議和研討會

http://dalibo.github.io 查看 DALIBO 的開源專案。

http://www.dalibo.com