3
MD5フィールドに最適なデータ型は何ですか?
読み取りが多いことがわかっているシステムを設計しています(1分あたり数万回の読み取り)。 names一種の中央レジストリとして機能するテーブルがあります。各行には、textフィールドrepresentationとkeyそのMD5ハッシュである一意のフィールドがありますrepresentation。1現在、このテーブルには数千万のレコードがあり、アプリケーションの存続期間中に数十億に達すると予想されています。 テーブルを参照する他の(スキーマとレコード数が非常に異なる)テーブルは多数ありnamesます。これらのテーブルのいずれかのレコードにname_keyは、機能的にはnamesテーブルへの外部キーであるが含まれることが保証されています。 1:ちなみに、ご想像のとおり、このテーブルのレコードは一度書き込まれると不変です。 テーブル以外の特定のnamesテーブルでは、最も一般的なクエリは次のパターンに従います。 SELECT list, of, fields FROM table WHERE name_key IN (md5a, md5b, md5c...); 読み取りパフォーマンスを最適化したいと思います。私が最初にやるべきことは、インデックスのサイズを最小化することだと思います(ただし、間違っていると証明されてもかまいません)。 質問: /に最適なデータ型は何ですかれるkeyとname_key、列?以上 を使用する理由はありますか?または?hex(32)bit(128)BTREEGIN