PostgreSQL 15と互換性のあるPolarDB for PostgreSQLが正式に起動されました。
概要
PostgreSQL 15と互換性のあるPolarDB for PostgreSQLは、パフォーマンスの向上に重点を置いています。 ローカルおよび分散展開でのワークロードの管理に優れています。
それは主に次の面を高め、最適化します:
並べ替え: メモリとディスクの並べ替えアルゴリズムが改善されました。
SQL: 標準のSQL MERGEステートメントがサポートされています。 正規表現を使用する新しい関数がチェック文字列に追加されます。
論理レプリケーション: 2フェーズコミット (2PC) トランザクションをレプリケートできます。 WHEREを使用して、公開されたテーブルをフィルタリングできます。 スキーマ内のすべてのテーブルを一度に公開できます。
データベースのパフォーマンス: メモリ使用量が削減されました。 クラッシュの回復が加速されます。
機能
PostgreSQL 15に基づいて、PolarDBはGanosBaseエンジン、グローバル実行プランキャッシュ、GBK/GB18030文字セットなどの追加機能もサポートしています。 PolarDB for PostgreSQL 15の最初のリリースでは、hll、hypopg、log_fdw、pase、pg_bigm、pg_cron、pg_jieba、pg_repack、pg_similarity、pgtap、pgvector、pldebugger、prefix、roaringbitmap、rum、varbitx、zhganosなどの拡張機能がサポートされています。
PolarDBは、SIMD命令セットおよびアトミック操作命令セットを最適化し、それらをトランザクション処理モジュールで有効にするなど、パフォーマンス最適化も実装します。 PGO、BOLT、LTO、巨大ページなどのシステムレベルの最適化方法が使用されます。 優れたパフォーマンスを提供するために、バッチデータの読み取り、スケーリング、I/Oパフォーマンスの向上、およびパラメータチューニングがサポートされています。
詳細については、https://www.postgresql.org/docs/15/release-15.html のコミュニティアナウンスを参照してください。
リリース日
2024年7月19日
課金方法
サブスクリプションおよび従量課金方式がサポートされています。 また、柔軟な課金のために、複数のコンピューティングおよびストレージプランと組み合わせて使用することもできます。 詳細については、「課金」をご参照ください。
主な改善点
PostgreSQL 15と互換性のあるPolarDB for PostgreSQLは、次の重要な改善点を提供します。
ソートと圧縮のパフォーマンスの向上
メモリとディスクのソートアルゴリズムが改善されました。 ベンチマークテストの結果は、ソート速度が異なるデータ型の400% に20% することによって加速されることを示しています。
ウィンドウ関数として使用すると、
row_number()、rank()、dense_rank()、count()の関数のパフォーマンスが向上します。SELECT DISTINCTステートメントを使用した並列クエリがサポートされています。PostgreSQL 14に基づく非同期リモートクエリ機能は、postgres_fdwラッパーの非同期送信をサポートします。
WALログファイルは、LZ4およびZstandard (zstd) 形式で圧縮して、スペースの使用とパフォーマンスを向上させることができます。
一部のオペレーティングシステムでは、リカバリ時間を短縮するためにWALページのプリロードがサポートされています。
PostgreSQLに組み込まれたバックアップコマンド
pg_basebackupを使用して、サーバー側のバックアップファイルをgzip、LZ4、およびzstd形式で圧縮できます。カスタムモジュールのアーカイブ機能がサポートされ、シェルコマンドの使用コストを削減します。
開発者向け機能
標準の
MERGEステートメントがサポートされています。INSERT、UPDATE、およびDELETE操作を含むSQL文を記述できます。正規表現を使用する次の新しい関数が、
regexp_count()、regexp_instr()、regexp_like()、およびregexp_str ()に追加されます。range_agg関数は、マルチレンジデータ型の集計に追加されます。security_invokerオプションがCREATE VIEWステートメントに追加され、ビュー作成者権限ではなくゲスト権限を持つユーザーがビューを作成できるようになります。 ビューの呼び出し元が基になるデータを処理するために適切な権限を使用するように、追加の保護が提供されます。
その他の論理レプリケーションオプション
発行用の行フィルタリングとデータ列リストを導入することで、論理レプリケーションの柔軟性が向上します。 データのサブセットを選択して、テーブルからコピーできます。
競合管理を簡素化するためにいくつかの機能が追加されます。
競合するトランザクションはスキップして再度実行できます。
サブスクリプションは、エラーが検出されたときに自動的に停止できます。
2PCは論理レプリケーションでサポートされています。
ログと設定の強化
JSONログ形式がサポートされています。 ログデータはJSON形式で印刷できます。 構造化ログシステムでPostgreSQLログを処理できます。
PostgreSQLの構成管理に関して、データベース管理者は、サーバーレベルの構成パラメーターを変更する権限をユーザーに付与できます。
psqlコマンドツールを使用して構成情報を表示できるように、
\dconfigコマンドが追加されました。
その他の注目すべき変更
サーバーレベルの統計は共有メモリに収集され、統計収集プロセスと定期的に統計をディスクに書き込むプロセスが最適化されます。
ICUソートは、クラスタまたは単一のデータベースのデフォルトソートとして使用され得る。
組み込みのpg_walinspectモジュールが追加され、SQLを使用してWALログファイルの内容を確認できます。
データベース所有者を除く、
public(またはdefault) スキーマのデータベース内のすべてのアカウントに対して、CREATE権限を取り消すことができます。非推奨のバックアップモードは削除されます。 PL/PythonはPython 2をサポートしていません。
更新
PolarDB for PostgreSQL 15にアップグレードすることを推奨します。 PostgreSQL 15と互換性のあるPolarDB for PostgreSQLを使用した後、PostgreSQLコミュニティについていくことができ、問題の解決とデータベースのベストプラクティスの学習に役立つリソースとサポートを増やすことができます。
PolarDB for PostgreSQL 14からPolarDB for PostgreSQL 15にアップグレードすると、ほとんどのデータ型、組み込み関数、テーブル列、およびオブジェクトを変更せずに、技術的な詳細をさらに改善できます。 論理レプリケーションを使用できます (DTSを推奨します) 。 詳細については、「PolarDB For PostgreSQLバージョン間のデータ移行」をご参照ください。ほぼ100% の互換性を実現します。 以下のセクションは、そのような改善を説明する。
データ型
U&""などの長さゼロのUnicode識別子は禁止されています。数字テキストの末尾に数字以外の文字を含めることはできません。 たとえば、
123abcは123として解析されます。JSON数値テキストは、SQL/JSON標準に準拠した方法で処理されます。 両方
1。と.1は有効ですが、1.type()などの桁以外の末尾は無効です。Interval値が小数の場合、最も近い月に丸められます。 たとえば、1.99年は、過去に使用された1年11か月ではなく、2年に変換されます。インターバルとトレーリング期間の解析の一貫性が改善される。char: 非ASCII文字は8進法で表示されます。
関数と式
array_to_tsvector(): 配列要素として空の文字列を入力すると、エラーが返されます。chr(): 負の引数を入力すると、エラーが返されます。出力型が
intervalの関数はIntervalStyleに依存するため、不変ではなくstableとしてマークされています。整数オーバーフローチェックは、
justify_interval()、justify_hours()、およびjustify_days()の間隔関数に対して追加されます。random()アルゴリズムが改善されました。シード値が同じであっても、random()の結果は以前のバージョンとは異なります。
クエリの最適化
Hash_mem_multiplierのデフォルト値が2.0に増加し、ハッシュクエリ操作でより多くのwork_memを使用できるようになります。CREATE OR REPLACE VIEWステートメントは、出力列の並べ替えを変更できません。
権限
デフォルトでは、ログインロールにはメンバーに対する
ADMIN OPTION権限がありません。 ログインロールは、ADMIN OPTION権限がないと、自身のロールのメンバーを追加または削除できません。論理レプリケーションは、サブスクリプション所有者として実行できます。
サブスクリプション所有者は、サブスクリプション所有者が
SELECT権限を持たないテーブルに対して論理レプリケーション操作 (UPDATE DELETE) を実行できません。
その他
排他バックアップモードと関連機能が削除されました。
Python 2はサポートされていません。
xml_is_well_formed関数は削除されます。libpqの
PQsendQuery()関数はパイプラインモードをサポートしていないため、一部のアプリケーションやドライバーとの非互換性が発生する可能性があります。古い
stats_temp_directoryパラメーターは削除されます。セッション一時オブジェクトの
スキーマがEXPLAINステートメントで参照される場合、それはpg_tempと呼ばれます。 古いスキーマ名も含まれます。