PostgreSQL のインデックスはデフォルトで IS NULL 句に使用されない
表題の通り hoge テーブルの fuga 列にインデックスを作成しても
CREATE INDEX hoge_fuga ON hoge(fuga);
条件に IS NULL を含む検索ではインデックスは利用されません。
SELECT * FROM hoge WHERE fuga IS NULL;
結果、上の SQL はレコード数が増えると低速になる可能性が高まります。
このような場合、部分インデックスを利用するとうまく動きます(PostgreSQL の場合 7.0.0 以降の対応です)。
CREATE INDEX hoge_fuga_null ON hoge(fuga) WHERE fuga IS NULL;