メインコンテンツに移動
ホーム
Let's POSTGRES

メインナビゲーション

  • ホーム
  • 目的別ガイド
  • 読み物
  • 動画で学ぶ

パンくず

  1. ホーム
  2. 目的別ガイド

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

  • アーキテクチャ解説
  • 動作解析
  • ソースコード解析
  • 開発への参加

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

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

アーキテクチャ解説

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

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

関連リンク
  • 記事: PostgreSQL の構造とソースツリー
  • PostgreSQLアーキテクチャ入門 (Uptime Technologies, LLC., 2011年)
  • PostgreSQLの概要とアーキテクチャ (ThinkIT, 高塚遙 氏, 2009年)

動作解析

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

  • 記事: 稼動統計情報を活用しよう
  • 記事: systemtapで動的追跡をしよう
  • 記事: xlogdumpによるトランザクションログの解析

SQL実行計画

  • Explaining EXPLAIN (しくみ分科会+アプリケーション分科会 第19回, 第20回, 第21回)
  • 記事: スロークエリの改善
  • Explaining EXPLAIN - Greg Stark, EnterpriseDB (PG UK 2008)
  • 問合せ最適化インサイド (板垣貴裕 氏, 2006年)

ソースコード解析

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

  • 本家: リポジトリ (git)
  • 本家: ソースコード ビューア (doxygen)
  • 記事: PostgreSQLのソースコード

開発への参加

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

  • 記事: PostgreSQLの開発プロセス
  • 記事: OSS の開発コミュニティってどんなところ?
  • 本家: Developers
  • Development information (PostgreSQL Wiki)
  • CommitFest

(2011年12月12日 公開)

ブック横断リンク: 目的別ガイド:内部解析編

  • 目的別ガイド:サポート編
  • 上へ

フッター

  • ホーム
  • 目的別ガイド
    • 導入検討
    • インストール
    • 運用管理
    • チューニング
    • サポート
    • 内部解析
  • 読み物
    • 入門記事
    • 技術的記事
    • 事例紹介
    • イベントレポート
    • リンク集
    • インタビュー
  • 動画で学ぶ
  • コンタクト

ブックナビゲーション

  • 目的別ガイド:導入検討編
  • 目的別ガイド:インストール編
  • 目的別ガイド:運用管理編
  • 目的別ガイド:チューニング編
  • 目的別ガイド:サポート編
  • 目的別ガイド:内部解析編
RSS feed

最近追加されたページ

  • PostgreSQL17の新機能
  • PostgreSQL16の新機能
  • PostgreSQL15の新機能
  • PostgreSQL14の新機能
  • 外部データとの連携 ~FDWで様々なデータソースとつなぐ~

ページ送り

  • 1
  • 次ページ