ハッシュ関数は、原理上、異なる複数のキーに対して、同じHash値を結果として返すことが起こり得ます*1。そのため、Hashインデックスを用いた検索では、インデックスを用いた検索の後に、再度検索結果の正当性を確認する処理(Recheck処理と呼ばれます)を行います。 PostgreSQL 10での改善点 PostgreSQLは古くからHashインデックスをサポートしています。しかし、バージョン9.6までのHashインデックスはWAL(トランザクションログ)に未対応だったため、データの永続性の問題や、ストリーミングレプリケーションとの相性の悪さなど、さまざまな問題を抱えていました。そのため、PostgreSQLの公式ドキュメント*2でも以下のようにHashインデックスの利用は推奨されていませんでした。 現在ハッシュインデックス操作はWALに記録されません。そのため、データベースクラッシュの後ハ
![第2回「Hashインデックス」 | NTTデータ先端技術株式会社](https://cdn-ak-scissors.b.st-hatena.com/image/square/9f31754cde2c197368c0f7bdcaba1958936fc918/height=288;version=1;width=512/https%3A%2F%2Fwww.intellilink.co.jp%2F-%2Fmedia%2Fndil%2Fndil-jp%2Fhome%2Fcarousel%2Ftop_03.jpg%3Fh%3D1050%26w%3D2804%26hash%3D31F1B1A040A0FA7B497BDCE045E9AF2F)