転職ならen

All About  »  プログラミング   »  データベース


ナビゲーション

プロバイダ比較検索

地域別 最安プラン検索

住居タイプ
 戸建て・アパート    マンション
回線タイプ
お住まいの都道府県

ガイド:堀江 美彦
掲載日:2004年07月30日

PostgreSQLのチューニング

データベース」   ガイド:堀江 美彦  このページをクリップする
PostgreSQLのチューニング

PostgreSQLは最適なパフォーマンスが出るように自動的に調整されるため、特別なチューニングテクニックは必須ではありませんが、最大限にパフォーマンスを引き出したい場合にはpostgresql.confで指定している値を調整することによりチューニングが可能です。また、PostgreSQLのパフォーマンス向上のためには定期的にVACUUMコマンドを実行することをお奨めします。

■VACUUMコマンドを実行する
VACUUMコマンドはPostgreSQLデータベースの掃除と解析をおこなうコマンドです。
定期的にVACUUMコマンドを実行するとデータベースの問い合わせのパフォーマンスが向上します。
VACUUMコマンドによる処理はテーブルが大きい場合は時間がかかりますので、あまりアクセスのない時間帯におこなうとよいでしょう。

VACUUMコマンドの文法

vacuumdb [connection-options...] [[-d] dbname] [--full | -f] [--verbose | -v] [--analyze | -z] [--table 'table [( column [,...] )]']

VACUUMコマンドの実行例
testというデータベースを掃除するには、下記のようにコマンドを実行します。
$ vacuumdb test

実行後、下記のメッセージが戻ればVACUUM処理が完了しています。
VACUUM

■共有バッファを増やす場合
共有バッファはデータベースをアクセスする際のキャッシュとして使われます。
PostgreSQLを動かすサーバーの搭載メモリに余裕のあるシステムでは、メモリ内に全てのデータベースを展開するとパフォーマンスが向上します。各バッファは8Kバイトですので「共有バッファ」は次の計算で求められます

「共有バッファ」= ((空きメモリの合計) と (データベースサイズ + 512K) の少ない方)) / 8192

「共有バッファ」を増やす場合はpostgresql.conf内の「shared_buffers」で指定する値を増やします。

例)
shared_buffers = 1024

■PostgreSQLへの接続数を増やす場合
PostgreSQLの同時接続ユーザー数の上限はpostgresql.conf内の「max_connections」で指定します。
同時接続ユーザー数を増やした場合は「同時接続ユーザー数 * 2」以上に共有メモリを増やしてください。

例)
max_connections = 64

■ソートバッファの値を増やす場合
ソート処理はSQLのORDER BYを指定した場合だけでなく、テーブルの結合の際にもおこなわれますので、 ソートバッファを大きくすることでパフォーマンスの向上が期待できます。
ソートバッファの値を増やす場合はpostgresql.conf内の「sort_mem」で指定する値を増やします。

例)
sort_mem = 4096

■キャッシュサイズを増やす場合
キャッシュサイズ値で共有バッファが割り当てられたときに利用できるメモリの量を設定します。
キャッシュサイズを増やす場合はpostgresql.conf内の「effective_cache_size」でキャッシュサイズを指定している値を増やします。

例)
effective_cache_size = 1000

■トランザクションログ
「トランザクションログが無くなっている(running out of transaction logs)」というメッセージが出力される場合はpostgresql.conf内の「al_files」と「wal_ buffers」で指定している値を増やします。

例)
wal_buffers = 8
wal_files = 4


WindowsでPostgreSQL 記事 一覧
      
2004年07月30日現在の記事です。  印刷用ページへ
この記事の関連タグ
この記事への感想を書く・読む

関連用語: バッファ  / 

サブコンテンツ

All About X 毎日.jp共同企画

これからどうなる?web2.0

記入してください

Web2.0特集
Web2.0に関する情報をお届け!最新のネットコミュニケーション方法からネットビジネスまで。

おすすめガイド記事