私はPostgreSQLが初めてであり、データベース全般については多少新しいです。PostgresでUUID値をインデックスする方法の確立された方法はありますか?ハッシュを使用するかトライを使用するかは、自動的に使用する組み込みのものが既に存在しない限り、分割されます。私が使用するものはすべて、膨大な量のデータを処理します。
SP-GiST演算子ファミリ「text_ops」は、トライを使用してインデックスを作成します。UUIDは非常に長く、非常に異なるため、完全一致検索のみを行う場合でも、これらのサウンドは魅力的です。
ハッシュオプションもあります。ハッシュはO(1)であり、もちろん平等以外の比較を行う必要はありませんが、UUIDは非常に長いため、ハッシュからハッシュを生成すると多くの時間が浪費されるのではないかと心配しています。
または、これはシステムに依存しすぎて、仕様を使用するものですか?
ほとんどの場合、bigserialを使用したいのですが、これにはuuidを使用するように言われました。異なるデータベースを使用する複数のサーバーが存在する可能性があるため、uuidが必要です。したがって、一意のbigintがあることを保証するものではありません。サーバーごとに異なるシーケンス(およびシード)を使用できますが、それでもUUIDほど柔軟ではありません。たとえば、IDとその参照をどこでも変換しないと、データベースエントリをあるサーバーから別のサーバーに移行することはできません。