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

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

DDD
DDDオリジナル
2024-12-04 01:18:10968ブラウズ

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

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

MySQL のパフォーマンスを向上させるには、UUID を文字列ではなく数値として保存することをお勧めします。この最適化は、MySQL のより高速なバイナリ処理機能を活用します。

変換プロセス:

  1. ダッシュの削除: UUID からダッシュを削除します。たとえば、「110E8400-E29B-11D4-A716-446655440000」を「110E8400E29B11D4A716446655440000」に変換します。
  2. 長さの計算: 結果の文字列の長さを次の値で割ります。 2. UUID の場合、長さは 32 文字で、結果は 16 になります。
  3. バイナリ フィールドの作成: MySQL で、計算された値と同じ長さの BINARY フィールドを作成します。 UUID の場合、これは BINARY(16) になります。
  4. UUID の挿入: UNHEX() 関数を使用して、UUID のバイナリ表現をフィールドに挿入します。例:
INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))

クエリと再フォーマット:

  1. クエリ UUID: の 16 進表現を取得します。 HEX() を使用した UUID function.
  2. ダッシュを再挿入します: プログラミング言語で、16 進文字列の 9、14、19、および 24 の位置にダッシュを再挿入して、元の UUID を取得します。

例:

CREATE TABLE test_table (
    field_binary BINARY(16) NULL,
    PRIMARY KEY (field_binary)
);

INSERT INTO test_table (field_binary) VALUES (UNHEX('110E8400E29B11D4A716446655440000'));

SELECT HEX(field_binary) AS field_binary FROM test_table;

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

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