|
|
前のページ 1 2
|
|
適切なFSMのサイズ |
FSMを十分大きくすれば安心だと思うかもしれませんが、むやみにFSMのサイズを増やすと、FSMを検索するオーバーヘッドのためにかえってパフォーマンスが低下します。10000程度なら問題ありませんが、数十万まで増やすとCPUの性能が低い場合はパフォーマンスへの悪影響が目立ってきます。FSMは10000程度でも足りるように、VACUUMの頻度を決めていく方法がお勧めです。
また、更新の量によっても必要なFSMの量は変化するので、運用していくうちに一度決めたFSMやVACUUM頻度が実情に合わなくなることもあります。できれば1日に1回程度「vacummdb -a -v」を実行し、FSMが足りているかどうか確認しましょう。FSMが不足している場合は、VACUUM FULLを実行して回収されなくなっている不要領域を解消し、FSMやVACUUM間隔の設定を見直します。
|
定期的にテーブル指定なしのVACUUMを実行する |
VACUUM はテーブルを指定して実行できるため、更新頻度の高いテーブルのみを指定すれば効率的なVACUUMが可能です。しかし、ここに落とし穴があります。
PostgreSQLにはユーザーから見えない「システムカタログ」という特別なテーブルがありますが、これらのテーブルもVACUUMが必要という点では普通のテーブルとまったく同じです。システムカタログの更新頻度は比較的少ないのですが、テーブルの作成や消去を頻繁に行うと一部のシステムカタログにはかなり不要領域が生じます。また、一時テーブルを使っている場合もシステムカタログに不要領域ができてしまうので注意が必要です。
システムカタログのVACUUMはテーブル指定のないVACUUMによってのみ行われます。したがって、定期的にテーブル指定のないVACUUMを実行する必要があります。
|
前のページ 1 2
|
|
|
|
著者プロフィール
石井達夫(ISHII, Tatsuo)
PostgreSQLの開発者、エバンジェリスト。本業でもPostgreSQLによるビジネスに関わっている。著書に「PostgreSQL完全攻略ガイド」「PHPxPostgreSQLで作る最強Webシステム」(技術評論社)などがある。
|
|
|
|