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

読み取り専用(不変)PostgreSQLテーブルの行数を取得するためのインデックス?

    残念ながら、postgresqlではSELECT COUNT(*)はmysqlより遅い よく比較されます。

    SELECT COUNT(*)の代わりに次のクエリを使用できます。

     SELECT reltuples FROM pg_class WHERE relname = 'mytable';
    

    これは常に100%最新であるとは限りませんが、不変のテーブルの場合は毎回正確になります。そして瞬時に。非常に大きなテーブルの場合、パーセンテージエラーは非常に小さいため、時間を大幅に節約する価値があります。

    重要であり、テーブルにnullが含まれていない場合は、

    を使用できます。
     SELECT COUNT(primary_key_column) FROM table
    

    これはSELECTCOUNT(*)

    よりも大幅に高速になります


    1. SQLDeveloperでのSQLモニタリング

    2. 2つのテーブルを結合する方法

    3. Oracle10gでピボット

    4. ログインスクリプトが必要に応じて機能しない