ホームページ  >  記事  >  データベース  >  MySQL の UUID ストレージを最適化し、クエリのパフォーマンスを向上するにはどうすればよいですか?

MySQL の UUID ストレージを最適化し、クエリのパフォーマンスを向上するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-16 12:18:03835ブラウズ

How can I optimize UUID storage in MySQL and improve query performance?

MySQL での UUID ストレージの最適化: 数値への変換

UUID は一意性を提供しますが、MySQL での文字列としてのストレージはパフォーマンスを妨げる可能性があります。データ取得の効率を高めるには、UUID を数値として保存することをお勧めします。

変換プロセス

  1. ダッシュを削除します:
    UUID からダッシュを削除します。たとえば、「110E8400-E29B-11D4-A716-446655440000」は「110E8400E29B11D4A716446655440000」になります。
  2. BINARY(16) フィールド:
    MySQL は UUID を効率的に保存しますBINARY フィールドで。 UUID は 128 ビットであるため、完全な UUID サイズに対応できる BINARY(16) が理想的です。
  3. UNHEX() を使用して挿入:
    BINARY フィールドに UUID を挿入します。 UNHEX() 関数を使用します。例:

    INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))
  4. HEX() を使用したクエリ:
    UUID を取得するには、HEX() 関数を使用します。例:

    SELECT HEX(FieldBin) AS FieldBin FROM Table
  5. ダッシュを再追加:
    Ruby コードで、元の UUID 形式と一致するように適切な位置にダッシュを再挿入します。

require 'mysql2'

client = Mysql2::Client.new(
  host: 'localhost',
  username: 'root',
  password: 'password',
  database: 'test_database'
)

uuid_binary = client.query(
  'SELECT HEX(FieldBin) AS FieldBin FROM test_table'
).first['FieldBin']

uuid = uuid_binary.insert(9, '-').insert(14, '-').insert(19, '-').insert(24, '-')

puts uuid

UUID を数値として保存することで、MySQL でのデータ取得を最適化し、クエリのパフォーマンスを大幅に向上させることができます。

以上がMySQL の UUID ストレージを最適化し、クエリのパフォーマンスを向上するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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