MySQL に UUID を数値として保存する
スレッド「MySQL の UUID パフォーマンス」で、ユーザーが UUID を文字列ではなく数値として保存することを提案しましたパフォーマンスの向上のために。この記事では、Ruby でこれを実現する方法を検討し、バイナリ表現を使用する利点について説明します。
ダッシュの削除と 16 進文字列への変換
UUID を次のように変換するには数値形式の場合は、まずダッシュを削除し、単一の 16 進文字列として表します。たとえば、「110E8400-E29B-11D4-A716-446655440000」は「110E8400E29B11D4A716446655440000」となります。
MySQL にバイナリとして保存
MySQL は文字列よりもバイナリ データを効率的に保存しますこれにより、UUID の保存に適しています。 UUID は 128 ビット長であるため、BINARY(16) フィールドに完全に収まります。次の SQL ステートメントを使用して、UUID をテーブルに挿入できます。
INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))
UUID を取得して変換して戻す
元の形式で UUID を取得するにはでは、次の SQL ステートメントを使用できます:
SELECT HEX(FieldBin) AS FieldBin FROM Table
Ruby コードでは、元の UUID 形式と一致するように適切な位置にダッシュを再挿入することで、取得した 16 進文字列をさらに処理できます。
バイナリ ストレージの利点
UUID をバイナリ データとして保存すると、文字列よりもいくつかの利点があります:
次の手順に従ってバイナリ ストレージを使用すると、UUID を使用するときに MySQL データベースのパフォーマンスを効果的に最適化できます。
以上がパフォーマンスを向上させるために、MySQL に UUID を数値として保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。