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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-17 03:26:03951ブラウズ

How to Store UUIDs as Numbers in MySQL for Performance Gains?

MySQL に UUID を数値として保存する方法

UUID を数値として保存すると、文字列として保存するよりもパフォーマンスが向上します。 MySQL でこれを実現する方法に関するステップバイステップのガイドは次のとおりです。

  1. UUID をバイナリ文字列に変換します。
    UUID からダッシュを削除して変換します。単一のバイナリ文字列に変換します。たとえば、元の UUID が「110E8400-E29B-11D4-A716-446655440000」の場合、「110E8400E29B11D4A716446655440000」になります。
  2. MySQL で BINARY フィールドを作成します。
    バイナリ UUID (この例では 16) の長さと一致する長さの BINARY フィールドを MySQL テーブルに作成します。これは以下を使用して実行できます:

    CREATE TABLE my_table (
        uuid BINARY(16) NOT NULL
    );
  3. バイナリ UUID を挿入します:
    UNHEX() 関数を使用してバイナリ UUID をフィールドに挿入します:

    INSERT INTO my_table (uuid) VALUES (UNHEX('110E8400E29B11D4A716446655440000'));
  4. UUID の取得と変換:
    データベースから UUID を取得する場合は、BINARY フィールドを選択し、HEX() 関数を使用してハイフンで区切られた UUID に変換し直します:

    SELECT HEX(uuid) AS original_uuid FROM my_table;
  5. Ruby コード統合:

    挿入:
    ActiveSupport::Digest::UUID.binary_pack(uuid) を使用して、UUID をバイナリ文字列に変換します。次に、フィールドに挿入する前に、UNHEX() 関数を使用して 16 進文字列に変換します。

    取得:
    フィールドからバイナリ UUID を取得し、それを UUID に変換します。 HEX() を使用した 16 進数文字列。次に、ActiveSupport::Digest::UUID.uuid_unpack() を使用して、16 進 UUID を元の形式に変換できます。

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

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