ハッシュ・インデックス

PostgreSQLは通常のB-treeインデックスの他にハッシュインデックスをサポートしています。しかし、ハッシュインデックスは絶対に避けるべきです。性能が向上する_場合も_ありますが、再ハッシュのコストが非常に高くなります。さらに重要なことは、少なくともPostgreSQL 10.0まではハッシュインデックスはWALログに記録されません。PostgreSQLのドキュメントからです:

ハッシュインデックスのオペレーションは現在のところWALログに記録されません。したがって、データベースがクラッシュした後、未書き込みの変更があった場合、REINDEXでハッシュインデックスを再構築する必要があるかもしれません。また、ハッシュインデックスへの変更は、最初のベースバックアップの後、ストリーミングやファイルベースのレプリケーションでは複製されません。これらの理由から、現在ハッシュインデックスの使用は推奨されていません。

RuboCopはハッシュインデックスの使用を検出すると違反として登録するように設定されています。

ハッシュインデックスを使用する代わりに、通常の B ツリーインデックスを使用する必要があります。