![読み取り/書き込みに影響を与えずに PostgreSQL テーブルの肥大化を解決しますか?](https://rvso.com/image/668784/%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%2F%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%AB%E5%BD%B1%E9%9F%BF%E3%82%92%E4%B8%8E%E3%81%88%E3%81%9A%E3%81%AB%20PostgreSQL%20%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E8%82%A5%E5%A4%A7%E5%8C%96%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
大きな postgresql テーブルがあり、肥大化し始めていると思うので、これを修正したいと思います。通常は または を実行できますVACUUM FULL
がCLUSTER
、読み取り/書き込みパフォーマンスに影響を与えずに肥大化を修正できるかどうか疑問に思っています。
インデックスが肥大化している場合は、古いものと同じものを異なる名前でインデックスする新しいインデックスを (手動で) 同時に作成し、作成されたら、肥大化した古いインデックスを削除できます。これにより、本番環境での使用への影響を最小限に抑えながら、インデックスの肥大化を修正できます (常にインデックスが存在し、読み取りと書き込みがブロックされないため)。
テーブルに機能するそのようなアプローチはありますか? できますCREATE TABLE newtable LIKE old_bloated_table INCLUDING ...
。これにより、テーブルが新たに作成されます。その後、削除して名前を変更します。ただし、データが同期されていない可能性があります。テーブル間でデータが同じであることを保証する方法はありますか? (インデックスの場合、インデックスは常にテーブルと同期されます)。