1. ホーム
  2. mysql

[解決済み] MySQLにUUID v4を格納する

2022-03-02 04:01:24

質問

PHPでUUIDを生成しているのですが、以下のような関数が見つかりました。 ここで

さて、私はそれをMySQLデータベースに格納したいと思います。 UUID v4 を格納するための最良の/最も効率的な MySQL フィールドフォーマットは何ですか?

現在、varchar(256)を使用していますが、必要以上に大きいことは確かです。 私は多くのほぼ答えを見つけましたが、それらは一般的にUUIDのどの形式を参照しているのか曖昧なので、私は具体的な形式を尋ねています。

どのように解決するのですか?

として格納します。 VARCHAR(36) 正確にフィットさせたい場合は VARCHAR(255) どうせ同じストレージコストで済むのだから。バイト数で騒ぐ必要はないのです。

覚える VARCHAR フィールドは 可変長 そのため、ストレージのコストは、実際にどれだけのデータが格納されているかに比例し、どれだけのデータが格納されうるかには比例しない。

として格納する。 BINARY は非常に厄介で、値は印刷できず、クエリを実行したときにゴミとして表示されることがあります。リテラルなバイナリ表現を使用する理由はほとんどありません。人間が読める値であれば、コピーペーストして簡単に操作することができます。

Postgresのような他のプラットフォームでは、適切なUUIDカラムがあり、内部的にはよりコンパクトなフォーマットで保存されますが、人間が読めるように表示されるので、両方のアプローチの長所を得ることができます。