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

ビットマップヒープスキャンとインデックススキャンはどのように決定されますか?

    テーブルには合計でいくつの行がありますか?決定は、インデックススキャンによって出力される行の割合に基づいています。

    テーブルの十分に高い割合がアクセスされる場合は、ビットマップインデックススキャンを使用して、可能な限り多くのディスクアクセスがシーケンシャルであることを確認します。対照的に、プレーンインデックススキャンは、テーブルデータに一度に1ページずつランダムアクセスします。 (また、アクセスされると予測されるテーブルの割合が十分に高い場合、インデックスはまったく使用されず、テーブルデータ全体が順番に読み込まれます)

    1つの問題は、テーブルからアクセスされる行数の予測が単なる見積もりであるということです。ただし、ご想像のとおり、「IT%」は「ITQ%」よりも一致する可能性があります(サフィックスはインデックススキャンの一部ではなく、最後のフィルターのみであることに注意してください)




    1. SPIPでタグをクエリする場合

    2. Oracle / PLSQLでNULL値のみをカウントするにはどうすればよいですか?

    3. Postgresで遅いSELECTDISTINCTクエリを高速化するためのソリューション

    4. Dot Net Entity Frameworkデータベースの更新では、mysqlデータベースにテーブルが作成されません