中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

PostgreSQL 12的新功能

發(fā)布于:2020-12-19 18:01:30

0

279

0

PostgreSQL 開源數(shù)據(jù)庫 SQL

2019年10月3日,發(fā)布了世界上最先進的開源數(shù)據(jù)庫的新版本。PostgreSQL 12現(xiàn)在可用,對查詢性能(特別是在較大的數(shù)據(jù)集和整體空間利用率方面)進行了顯著改進,還有其他重要功能。 

在此博客中,我們將介紹這些新功能,并向您展示如何獲取和安裝此新PostgreSQL 12版本。我們還將探討升級時要考慮的一些注意事項。PostgreSQL 12功能和改進,讓我們開始提及這個新PostgreSQL版本的一些最重要的功能和改進。

索引編制

  • 對B樹索引的空間利用率和讀/寫性能進行了優(yōu)化。

  • 減少創(chuàng)建GiST,GIN和SP-GiST索引的WAL開銷。

  • 您可以使用SP-GiST索引通過距離運算符(<->)執(zhí)行K近鄰查詢。

  • 重建索引時不會通過REINDEX CONCURRENTLY命令阻止對索引的寫操作,從而使用戶可以避免因長時間重建索引而導致停機的情況。

分區(qū)

  • 對分區(qū)表的查詢有了改進,尤其是對于具有數(shù)千個分區(qū)的表,這些表只需要從有限的子集中檢索數(shù)據(jù)。

  • 使用INSERT和COPY向分區(qū)表添加數(shù)據(jù)的性能提高。

  • 您將能夠在不阻止查詢的情況下將新分區(qū)附加到表。

SQL

  • 現(xiàn)在,您可以使用SQL / JSON標準中定義的JSON路徑表達式對JSON文檔運行查詢,并且它們可以利用現(xiàn)有的索引機制對以JSONB格式存儲的文檔進行有效檢索。

  • PostgreSQL 12現(xiàn)在可以自動內(nèi)聯(lián)WITH查詢(如果它不是遞歸的,沒有任何副作用,并且在查詢的后面部分僅被引用一次),這反過來又可以幫助提高許多現(xiàn)有查詢的性能查詢。

  • 引入“生成的列”。這種類型的列根據(jù)同一表中其他列的內(nèi)容計算其值。還支持在此存儲此計算值。 

國際化

  • PostgreSQL 12通過允許用戶定義“不確定性歸類”來擴展其對ICU歸類的支持,例如,可以允許不區(qū)分大小寫或不區(qū)分重音的比較。

認證方式

  • 引入了客戶端和服務器端加密,以通過GSSAPI接口進行身份驗證。

  • 如果PostgreSQL服務是使用OpenLDAP編譯的,則它能夠發(fā)現(xiàn)LDAP服務器。

  • 使用clientcert = verify-full選項和在pg_hba.conf文件中配置的其他身份驗證方法進行多因素身份驗證。

如果要利用這些新功能和改進,可以轉(zhuǎn)到下載頁面并獲取最新的PostgreSQL版本。如果您需要HA設置,這里是一個博客,向您展示如何為HA安裝和配置PostgreSQL。

如何安裝PostgreSQL 12

在此示例中,我們將使用CentOS7作為操作系統(tǒng)。因此,我們需要轉(zhuǎn)到基于RedHat的OS下載站點并安裝相應的版本。

1個

$ yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

它將安裝帶有穩(wěn)定,測試和源代碼包的PostgreSQL存儲庫。

1個

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

$ head /etc/yum.repos.d/pgdg-redhat-all.repo<font></font>

<font></font>

# PGDG Red Hat Enterprise Linux / CentOS stable repositories:<font></font>

<font></font>

[pgdg12]<font></font>

<font></font>

name=PostgreSQL 12 for RHEL/CentOS $releasever - $basearch<font></font>

<font></font>

baseurl=https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-$releasever-$basearch<font></font>

<font></font>

enabled=1<font></font>

<font></font>

gpgcheck=1<font></font>

<font></font>

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG<font></font>

<font></font>

...

然后,安裝客戶端和服務器PostgreSQL12軟件包。它將安裝一些python依賴項。

1個

$ yum install postgresql12 postgresql12-server

現(xiàn)在,您可以初始化新的PostgreSQL 12數(shù)據(jù)庫。

1個

2

3

$ /usr/pgsql-12/bin/postgresql-12-setup initdb<font></font>

<font></font>

Initializing database ... OK

并啟用/啟動PostgreSQL服務。

1個

2

3

4

5

$ systemctl enable postgresql-12<font></font>

<font></font>

Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-12.service to /usr/lib/systemd/system/postgresql-12.service.<font></font>

<font></font>

$ systemctl start postgresql-12

就是這樣。您已啟動并運行新的PostgreSQL版本。

1個

2

3

4

5

6

7

8

9

10

11

12

13

14

15

$ psql<font></font>

<font></font>

psql (12.0)<font></font>

<font></font>

Type "help" for help.<font></font>

<font></font>

postgres=# select version();<font></font>

<font></font>

                                                 version<font></font>

<font></font>

---------------------------------------------------------------------------------------------------------<font></font>

<font></font>

 PostgreSQL 12.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit<font></font>

<font></font>

(1 row)

現(xiàn)在,您已經(jīng)安裝了最新的PostgreSQL版本,您可以將數(shù)據(jù)遷移到這個新的數(shù)據(jù)庫節(jié)點中。

升級到PostgreSQL 12

如果要將當前的PostgreSQL版本升級到這個新版本,則有三個主要選項可以執(zhí)行此任務。

  • pg_dump:這是一個邏輯備份工具,可讓您轉(zhuǎn)儲數(shù)據(jù)并將其還原到新的PostgreSQL版本中。在這里,您將有一個停機時間,該停機時間將根據(jù)您的數(shù)據(jù)大小而變化。.您需要停止系統(tǒng)或避免在主節(jié)點中使用新數(shù)據(jù),運行pg_dump,將生成的轉(zhuǎn)儲移至新的數(shù)據(jù)庫節(jié)點并進行還原。在這段時間內(nèi),您無法寫入PostgreSQL主數(shù)據(jù)庫,以避免數(shù)據(jù)不一致。

  • Pg_upgrade:這是一個PostgreSQL工具,用于就地升級PostgreSQL版本。在生產(chǎn)環(huán)境中可能很危險,因此在這種情況下我們不建議使用此方法。使用這種方法也會有停機時間,但是可能比使用以前的pg_dump方法要少得多。

  • 邏輯復制:從PostgreSQL 10開始,您就可以使用這種復制方法,該方法允許您以零(或幾乎零)的停機時間執(zhí)行主要版本升級。這樣,您可以在最新的PostgreSQL版本中添加一個備用節(jié)點,并且當復制是最新的時,您可以執(zhí)行故障轉(zhuǎn)移過程來升級新的PostgreSQL節(jié)點。

升級到PostgreSQL 12之前的注意事項

通常,對于所有升級過程以及所有技術(shù),都需要考慮以下幾點。讓我們看一些主要的。

  • 刪除了數(shù)據(jù)類型abstime,reltime和tinterval。

  • recovery.conf設置已包含在postgresql.conf文件中,并且不再使用。如果創(chuàng)建了此文件,則服務器將無法啟動。文件recovery.signal和standby.signal文件現(xiàn)在用于切換到非主要模式。將trigger_file設置重命名為promove_trigger_file,并且刪除了standby_mode設置。

  • 不允許使用多個沖突的recovery_target規(guī)范。

  • pg_restore中需要指定“ -f”以將轉(zhuǎn)儲內(nèi)容發(fā)送到標準輸出。

  • B樹索引中的最大索引條目長度減少了八個字節(jié),以改善重復條目的處理。對先前版本的索引pg_upgrade執(zhí)行的REINDEX操作可能會失敗。

  • 如果沒有提供參數(shù)列表并且有多個匹配的對象,則DRIF IF EXISTS FUNCTION / PROCEDURE / AGGREGATE / ROUTINE會產(chǎn)生錯誤。

有關新的PostgreSQL 12功能和遷移之前的注意事項的更多詳細信息,您可以參考官方發(fā)行說明網(wǎng)頁。