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

PostgreSQL count(*)が常に遅い場合、複雑なクエリをページ付けする方法は?

    その記事の見出しを読みましたか?

    次の記事は、9.2より前のバージョンのPostgreSQLにのみ適用されることに注意してください。インデックスのみのスキャンが実装されました。

    9.2を使用すると、通常、はるかに優れた結果が得られます。詳細については、インデックスのみのスキャンwikiページをお読みください。

    そうは言っても、LIMITを使用している古いバージョンでは およびOFFSET 通常は正常に動作します。多少の変動を気にしない場合は、テーブル統計を使用して行数(したがってページ数)を見積もることができます。すでにリンクしている記事の「行数の見積もり」を参照してください。

    LIMITを使用したページ付け およびOFFSET とにかく、IMO、アンチパターンです。多くの場合、ページネーションコードを言い換えて、sort_column > 'last_seen_value' LIMIT 100を使用することができます。 つまり、オフセットを回避します。これにより、パフォーマンスが大幅に向上する場合があります。



    1. OracleJDBCの断続的な接続の問題

    2. docker-composeupの後にPostgresダンプをロードします

    3. SQL Server(T-SQL)で電子メールの送信に失敗した理由を調べる

    4. NextFormマルチテーブルウィザードを使用したDB移行