sql >> データベース >  >> RDS >> PostgreSQL

配列と多くの更新がある大きなテーブルでPostgreSQLが遅くなる

    テーブルのFILLFACTORを見てみましょう。デフォルトでは100に設定されていますが、(最初は)70に下げることができます。この後、テーブルを再構築するためにVACUUMFULLを実行する必要があります。

    ALTER TABLE tablename SET (FILLFACTOR = 70);
    VACUUM FULL tablename;
    REINDEX TABLE tablename;
    

    これにより、UPDATEは、行の更新されたコピーを元のページと同じページに配置する機会が与えられます。これは、別のページに配置するよりも効率的です。または、データベースが以前に更新された多くのデータベースからすでにいくらか断片化されている場合は、すでに十分に余裕がある可能性があります。これで、更新する列がどのインデックスにも関係していないことを前提として、データベースにHOT更新を実行するオプションもあります。



    1. Common Table Expression(CTE)を使用する場合

    2. PostgreSQL構成に関するチートシート

    3. sp_updatestatsを回避するもう1つの理由

    4. シェルを使用してデータベースがPostgreSQLに存在するかどうかを確認します