OSSデータベース取り取り時報

第71回 MySQL Database Serviceとアプリケーション,一足早い次期メジャーバージョンPostgreSQL 14情報

この記事を読むのに必要な時間:およそ 4 分

OSSコンソーシアム データベース部会のメンバーによる本連載をよろしくお願いいたします。

[MySQL]2021年6月の主な出来事

2021年6月のMySQLの製品リリースはありませんでした。MySQL Database Serviceは毎月機能強化が行われており,6月16日には変更可能なサーバー変数が追加されています。なおテーブル名の大文字小文字を区別するかどうかの設定であるlower_case_table_nameは,インスタンス作成時には設定を選択できますが,インスタンス作成後は変更できない初期化時のみ変更可能な変数とされている点には注意が必要です。

MySQL Database Serviceとオープンソース・アプリケーション

MySQLコミュニティチームのLeFredのブログにて,各種のオープンソース・アプリケーションをMySQL Database Serviceと組み合わせて利用する方法が解説されています。

オープンソースのアプリケーションとMySQL Database Serviceをまとめて構築できるOracle Cloudの「クラウド・スタック」の機能を利用して,インスタンス名やMySQLサーバーのユーザー/パスワードなどいくつかの情報をOCIのコンソール上で入力するだけで構築できるTerraformモジュールをLeFredがGitHub上で公開しています。

OCIのトライアル用アカウントでも自由に利用できるようになっています。OCIのアカウントを持っていれば,各モジュールのページのボタンを押すだけでスタックの構築が可能です。

[PostgreSQL]2021年6月の主な出来事

次期メジャーバージョンであるPostgreSQL 14の姿が明らかになってきましたので,一足早く新機能や改善点を中心にお伝えします。

一足早いPostgreSQL 14情報

前回お知らせしたとおり,PostgreSQLの次期メジャーバージョンのベータ版が5月に公開されました。さらに6月24日にはベータ2がリリースされていますので,これらのベータ版のリリース情報を元に,PostgreSQL 14で実現する新機能や改善点を確認してみましょう。

まず,ベータ1のリリース情報に記されたPostgreSQL 14のハイライトは次のようになっています。ご存知のようにPostgreSQLはメジャーバージョンのタイミングで新機能が組み込まれますので,ハイライトだけでもかなりの項目数になります。

パフォーマンス改善
  • インデックスが頻繁に更新されるテーブルの肥大化を減らすなど,Bツリーインデックスのオーバーヘッドを減らす改善がされています。
  • GiSTインデックスは作成を高速化し,かつ,インデックスサイズが縮小されます。
  • クエリの並列処理では多くの改善がされました。並列順次スキャンのパフォーマンスが全体的に向上し,PL/pgSQLのRETURN QUERYディレクティブで並列処理が実行できるようになりました。REFRESH MATERIALIZED VIEWでも並列処理が使用できるようになりました。
  • 外部データラッパーを使用した外部データベースへの問合せの際に,並列処理を行う機能が導入されています。
  • パーティションシステムでは,影響を受けるパーティションが少ないテーブルの行を更新または削除するときのパフォーマンスが向上します。
  • インクリメンタルソートがウィンドウ関数で使用できるようになりました。
  • これまでも「特大データ」(TOASTシステム)の圧縮がサポートされていましたが,このリリースでは列の圧縮にLZ4圧縮を使用することができるようになりました。
データ型とSQL
  • 範囲(range)型の既存のサポートに基づいて,連続していない範囲の順序付きリストを指定できる新しいマルチ範囲(multirange)型が追加されました。
  • ネストされたオブジェクトの情報を取得するための一般的な添え字フレームワークが追加されました。また,データ型のネストされた情報を取得できるようになりました。
管理
  • インデックスの最適化により,VACUUMに多くの改善がされています。autovacuumはパーティション化されたテーブルを分析し,行数に関する情報を親テーブルに伝達できるようになりました。
  • ANALYZEは,maintenance_io_concurrencyパラメータで制御してパフォーマンスが向上します。
  • pg_stat_progress_copyビューを使用してCOPYの進行状況を追跡する機能など,監視できる情報の多数の改善がされました。
  • pg_stat_walビューからWALアクティビティを追跡し,pg_stat_replication_slotsビューからレプリケーションスロット統計を検査できます。
  • 接続の管理に役立ついくつかの新しいパラメータがあります。例えば,アイドル状態の接続を指定された時間後に閉じることができるidle_session_timeout,クライアントが切断された場合に長時間実行されるクエリをキャンセルできるようにするclient_connection_check_intervalなどです。
  • REINDEXコマンドは,パーティション表のすべての子インデックスを処理できるようになりました。
  • データの破損をチェックするのに役立つpg_amcheckユーティリティが追加されました。
レプリケーションとリカバリ
  • 論理レプリケーションに関する多くのパフォーマンス向上がなされています。例えば,進行中のトランザクションをサブスクライバにストリーミングする機能などです。
  • ALTER SUBSCRIPTIONを使用すると,新しいADD / DROP PUBLICATION構文を使用してパブリケーションを追加/削除できます。
  • クラッシュリカバリ時にPostgreSQLが起動する方法が改善され,スタンバイモードのPostgreSQLインスタンスでpg_rewindを使用できるようになりました。
セキュリティ
  • pg_read_all_dataおよびpg_write_all_dataの事前定義されたロールを使用して,テーブル/ビュー/シーケンスに対するユニバーサルな「読み取り専用」および「書き込み専用」権限をユーザに与えることができます。
  • インスタンスのパスワード管理ではデフォルトでSCRAM-SHA-256が使用されます。また,pg_hba.confのclientcertパラメータは,従来の値ではなくverify-caまたはverify-fullのいずれかの値を使用する必要があります。
  • pg_hba.confファイルのclientname = DNパラメータを使用して,証明書を用いた認証に証明書の「識別名」⁠DN)を使用できます。
ベータ2での改善点

ベータ1のリリース後1ヵ月未満でベータ2がリリースされ,報告されたさまざまなバグ修正がされています。

  • プロシージャのOUTパラメータの処理が再設計されました。
  • toastカラムのLZ4サポートに対するさまざまな改善と修正がされました。
  • VACUUMによるインデックスバイパスの無効化をサポートされました。
  • pg_dumpallへ⁠--no-toast-compression⁠が追加されました。

@nuko_yokohamaさんの「PostgreSQL 14がやってくる」

上記の新機能ハイライトはリリース情報を元にまとめているものですが,@nuko_yokohamaさんがPostgreSQL 14がやってくるとして,ベータ版を実際に稼働させた検証報告を公開されています。

TOAST圧縮方式
PostgreSQL 14がやってくる(4) - TOAST圧縮方式の変更では,PostgreSQL 14でTOAST圧縮方式が変更されている点について詳しく調べられています。⁠TOAST」は名前がおもしろいですね。いちおう⁠The Oversized-Attribute Storage Technique⁠の略称になっている様です。
COPYの進捗
PostgreSQL 14がやってくる(5) - COPYの進捗どうでしょうでは,pg_stat_progress_copyビューによってCOPYの進捗がどの様に確認出来るのかを実際に動かしてみながら検証しています。
その他
その他,psqlの改善や追加機能などについても調べられています。

著者プロフィール

梶山隆輔

MySQL Sales Consulting Senior Manager。

日本オラクル(株)において,MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なMySQL部門にて,オーストラリア,インド,台湾などに在籍するチームメンバーを束ね,アジア太平洋地域の25以上の国や地域でのMySQL普及やビジネスの拡大をミッションとする。


溝口則行(みぞぐちのりゆき)

TIS株式会社

OSSコンソーシアム副会長,オープンソースビジネス推進協議会(OBCI)副理事長。その他,PostgreSQLエンタープライズ・コンソーシアム(PGECons),日本OSS推進フォーラムなどにも少しずつ関与。勤務先メンバに,PostgreSQL,Zabbix,Ansibleやコンテナ技術などに強みのある癖のある芸人を抱え,タレントマネージャ業が中心になりつつある。