目的別ガイド:内部解析編

目的別ガイド:内部解析編

データベース管理システムを使う利点は、ディスクとメモリの使い方や、データの検索方法を意識しなくてもアプリケーションが開発できることです。とはいえ、より性能を引き出したり、トラブルシュートの際には、内部の動作を知っておくと役立ちます。ここでは、アーキテクチャや動作解析に関する記事をまとめます。

また、PostgreSQLはオープンソースで開発されているソフトウェアなので、ソースコードのレベルでも調査ができることも魅力です。ソースコードの追い方や開発プロセスへの参加方法も併せて紹介します。

アーキテクチャ解説

PostgreSQLはクライアント/サーバ型のRDBMSです。クライアントとサーバは専用のプロトコルで通信を行い、サーバは複数のリクエストを平行して処理するために、マルチプロセスで構成されます。データの保存には、テーブルごとに1個または複数のファイルを使用します。

他の大規模向けDBMSと比較して、ファイルシステムやプロセス・スケジューラを始め、OSへの依存が比較的大きいことがPostgreSQLの特徴です。「OSのほうが低レイヤの仕組みを良く知っているのだから、任せるべきだ」という思想に基づいています。PostgreSQLの性能を引き出すには、OSの選択やチューニングも重要な要素です。

関連リンク

動作解析

PostgreSQLには内部で行われる処理の概要や、各種処理の実行回数のカウンタを表示する機能があります。それらを利用すると、アーキテクチャに関する知識は必要なものの、効率的な解析ができます。

SQL実行計画

ソースコード解析

PostgreSQLはオープンソースですので、ソースコードを読み解いて理解を深めることもできます。可読性と保守性を重視したコーディングになっているため、コード・リーディングの勉強にも良いでしょう。最新の開発版は git レポジトリから取得することができます。

開発への参加

データベース本体の開発に関してもオープンです。英語メーリングリストでのやり取りを通して提案、開発されるスタイルです。2ヵ月ごとに CommitFest として提案されたパッチの採択が行われ、1年に1回のペースでメジャーバージョンがリリースされます。


(2011年12月12日 公開)