ホームページ >データベース >mysql チュートリアル >パフォーマンスを向上させるために、MySQL に UUID を数値として保存するにはどうすればよいですか?

パフォーマンスを向上させるために、MySQL に UUID を数値として保存するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 08:37:03880ブラウズ

How Can I Store UUIDs as Numbers in MySQL for Improved Performance?

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 をバイナリ データとして保存すると、文字列よりもいくつかの利点があります:

  • インデックス作成の高速化: MySQLバイナリ インデックスは文字列インデックスより効率的です。
  • ストレージ スペースの削減: バイナリ表現は文字列表現よりも必要なストレージ スペースが少なくなります。
  • 高速な比較:バイナリ比較は文字列比較よりも高速です。

次の手順に従ってバイナリ ストレージを使用すると、UUID を使用するときに MySQL データベースのパフォーマンスを効果的に最適化できます。

以上がパフォーマンスを向上させるために、MySQL に UUID を数値として保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。