PostgreSQLのメモリ設定
2025年6月14日概要 データベースの性能向上や安定運用には適切なメモリ設定が必要である。ディスクアクセスはメモリアクセスに比べ極めて遅く、可能な限りメモリから読み書きすることで応答性能を向上させたい一方、過度なメモリ割り当てはOOM(Out Of Memory、メモリ不足によるプロセス強制終了)リスクを高め、システム全体の停止につながる可能性がある。したがって、安定性を担保しつつ性能を確保するために、Postgr...
概要 データベースの性能向上や安定運用には適切なメモリ設定が必要である。ディスクアクセスはメモリアクセスに比べ極めて遅く、可能な限りメモリから読み書きすることで応答性能を向上させたい一方、過度なメモリ割り当てはOOM(Out Of Memory、メモリ不足によるプロセス強制終了)リスクを高め、システム全体の停止につながる可能性がある。したがって、安定性を担保しつつ性能を確保するために、Postgr...
概要 PostgreSQLにおける論理レプリケーションは、データベース内の特定のテーブルに対するDML操作(INSERT、UPDATE、DELETEなど)を、他のPostgreSQLインスタンスに複製する仕組みである。物理レプリケーションとは異なり、論理レプリケーションはテーブル単位で柔軟に対象を選定できるため、データ統合、分散処理、マイグレーションといった用途に適している。 参考: Postg...
概要 PostgreSQLでは、GRANTベースのアクセス制御(テーブルや列レベル)に加え、ユーザー単位で特定の行の可視性や更新可否を制御する仕組み(行レベルのアクセス制御)としてRow Level Security(RLS)が提供されている。 RLSの基本概念 Row Level Securityは、テーブルに対して「ポリシー」を定義することで機能する。 ポリシーは、どのユーザーがどの行にアクセ...
PostgreSQL インストール時の 'configure' エラーに関するトラブルシューティング 1. はじめに PostgreSQL のソースコードをコンパイルする際に、make を実行した際に You need to run the 'configure' program first. というエラーが発生した。 トラブルシューティングをメモしておく。 2. ...
PostgreSQLのCOLLATEとglibcのバージョン差によるソート順の違い 同じCOLLATE設定を指定しているにもかかわらず、環境によってソート順が異なる問題に遭遇したので、その時の調査記録をメモしておく。 事象 Cloud SQLとローカル環境のPostgreSQLコンテナでCOLLATEが同じでもソート結果が違う Cloud SQL for PostgreSQL 17上でテーブルの文...
PostgreSQLにおけるCOLLATE(照合順序)について調べたことをまとめる。 1. COLLATE(照合順序)とは COLLATEとは、文字列の並び順や比較の仕方(大文字・小文字の扱いやアクセント、濁点など)を指定する仕組みである。たとえばORDER BYによる並び順や比較演算子の結果にも影響するため、日本語環境下でのアプリケーション開発においては正しいCOLLATEを設定しておくことが推...
データモデルには、時間軸(履歴や有効期間など)をどのように管理するかによって、いくつかのパターンが存在する。 Nontemporal(ノンテンポラル) Unitemporal(ユニテンポラル) Bitemporal(バイテンポラル) それぞれは「時間情報をどの程度細かく、どのような意味で管理するか」という点で異なる。 これらのデータモデルの特徴や設計例、メリット・デメリットについて解説する。 ...
Cloud SQLと比較したAlloyDBの優位性について知りたかったので簡単に調査してみた。 前提 Cloud SQLについてはCloud SQL Enterprise editionを対象とする。 Cloud SQL vs AlloyDB 仕様について単純比較する。 Cloud SQL AlloyDB サービス形態 マネージド型RDBMS PostgreSQLベースの分散型に近い...
分散SQLクエリエンジンTrino徹底ガイドを読んだ。 SQLクエリエンジン ANSI SQLをサポート フェデレーテッドクエリ 同じSQLで異なるシステムからデータベースとスキーマを参照および使用する データベースではない OLTPを処理するために設計されていない OLAP向けなので、あくまで性能目標はOLAP水準なのではなかろうか 分散システムとしてコンピューティングリソースを...