2016-09-16 9 views
0

私のユーザーテーブルにはまだ多くの行がありません。PostgreSQLのクエリプランはテーブルの行数に依存しますか?

同じクエリのクエリプランは、テーブルのサイズが大きくなるにつれて変化しますか?

EXPLAINを使用する前に、usersテーブルに行数を掛けて、私のアプリケーションの規模を見てみてください。

+1

はい、プラン**は行数が増えるにつれて変更されます**。 –

+0

K.ありがとうございます。うーん...次に、私はユーザーテーブルをシードする良い方法を見つけるでしょう。 – ma11hew28

答えて

2

予想される行数は、おそらくクエリプランが選択される最も重要な要素です。これをサポート

二つの例:

  • あなたがテーブルのインデックス付きの列にWHERE条件を使用している場合は、三つのことが起こることができます。

    1. テーブルは非常に小さい場合や、高い割合の行が条件に一致した場合、シーケンシャルスキャンを使用して表全体が読み取られ、条件に一致する行が除外されます。

    2. テーブルが大きく、行の割合が低い場合、インデックススキャンが使用されます。

    3. テーブルが大きく、行の中位の割合が条件に一致する場合は、ビットマップインデックススキャンが使用されます。

  • あなたは2つのテーブルを結合する場合は、ネストされたループが選ばれたかされていない参加する場合は、テーブル上の推定行数が決定されます。

関連する問題