MySQLデータベースのいくつかのテーブルの主キーとしてクライアント提供のUUIDを使用することを計画しています。
UUIDをMySQLデータベースに格納するためのさまざまなメカニズムに出くわしましたが、それらを相互に比較するものはありません。これらには、次のようなストレージが含まれます。
- BINARY(16)
- CHAR(16)
- CHAR(36)
- VARCHAR(36)
- 2 x BIGINT
より良いオプションはありますか、オプションは次の点で互いにどのように比較されますか?
- ストレージサイズ?
- クエリのオーバーヘッド?(インデックスの問題、結合など)
- クライアントコードからの値の挿入と更新のしやすさ?(通常、JPA経由のJava)
実行しているMySQLのバージョン、またはストレージエンジンに基づく違いはありますか?現在5.1を実行しており、InnoDBの使用を計画していました。UUIDを使用しようとした実際の経験に基づいたコメントを歓迎します。ありがとう。