1,000万件のエントリがあるテーブルがあり、その列の1つはメールアドレスです。クエリはすべて等式比較であるため、この列にハッシュインデックスを作成したいと思います。
データベース:Postgres 8.3.3
マシン:24GBのRAMと16コア。
ハッシュインデックスの作成には約51分かかりますが、メールアドレスの小文字でハッシュインデックスを作成すると、3分もかかりません。
例:
create index xyz on table_xyz using hash(email)
:このインデックスの作成には51分かかりますcreate index xyz on table_xyz using hash(lower(email))
:このインデックスの作成には3分かかります。
私のmaintenance_work_memは16MBに設定されています。shared_buffers = 1GB
この動作を説明するものは何ですか?