#author("2020-05-18T02:35:47+00:00","default:admin","admin") *VACUUM [#z48c9259] -[[PostgreSQL VACUUM で年末大掃除:https://www.techscore.com/blog/2018/12/18/postgresql-vacuum%E3%81%A7%E5%B9%B4%E6%9C%AB%E5%A4%A7%E6%8E%83%E9%99%A4/]] **AUTO VACUUM機能 [#bde57ce5] -[[自動VACUUMの状況を確認する:https://qiita.com/mkyz08/items/ffc34c13510bd1c5adb1]] -PostgreSQLには「AUTO VACUUM」機能が搭載されており、自動で随時VACUUMが実行されるため、多くの場合問題とならない -テーブルによって追加・更新・削除の頻度、規模は様々であるため、AUTO VACUUM機能によるVACUUM実行のタイミングが適切でないケースが出てくる **VACUUMに関する注意点 [#h0906007] -VACUUM FULLはテーブルに排他ロックを必要とするうえ、処理に非常に長い時間を要する。そのため、VACUUM FULLの実行がサービス障害につながることもありえる。 -VACUUM FULLが必要とならないよう、普段から適切にVACUUMが実行されるようにAUTO VACUUMのパラメータ調整や、各テーブルのVACUUM実行状況の監視が大切 *パフォーマンスチューニング [#m884fd4d] -[[第9回 パフォーマンス・チューニング(前編):https://oss-db.jp/dojo/dojo_info_09]] -[[第10回 パフォーマンス・チューニング(後編):https://oss-db.jp/dojo/dojo_info_10]] *Mac OS Xへのインストール [#dcabfa2f] 1. インストール $ ./configure オプション $ make $ sudo make install(デフォルトでは/usr/local/pgsqlにインストールされる) 2. 共有メモリ関係の設定変更 /etc/sysctl.conf がある場合は、このファイルを以下のように編集 kern.sysv.shmmax=167772160 kern.sysv.shmall=65536 kern.sysv.shmmin=1 kern.sysv.shmseg=8 kern.sysv.shmmni=32 ない場合は、/etc/rc の64行目付近を以下のように編集 sysctl -w kern.sysv.shmmax=167772160 kern.sysv.shmmin=1 kern.sysv.shmmni=32 kern.sysv.shmseg=8 kern.sysv.shmall=65536 編集後、Macを再起動し、ターミナルを起動。以下のコマンドを打って変更が反映されているか確認。 $ sysctl -a | grep kern.sysv kern.sysv.shmmax: 167772160 kern.sysv.shmmin: 1 kern.sysv.shmmni: 32 kern.sysv.shmseg: 8 kern.sysv.shmall: 65536 : 3. postgres というユーザーを作成 4. "su - postgres" でpostgresユーザーになって以下を実行 $ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data $ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l postgres.log start $ /usr/local/pgsql/bin/createdb test $ /usr/local/pgsql/bin/psql test 5. 自動起動の設定 http://www.entropy.ch/software/macosx/postgresql/ より~ pgsql-startupitem-1.2.pkg.tar.gz をダウンロードしてインストール *リンク集 [#l2475a8e] -[[PostgreSQL:http://www.postgresql.org/]] -[[Max OS Xのパッケージ配布:http://www.entropy.ch/software/macosx/postgresql/]] -[[PostgreSQLのインストール:http://homepage.mac.com/reefedge/osx/index_4.html#postgres]] -[[PostgreX:http://www.magic3.org/postgrex/]]