>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 UUID 스토리지를 최적화하고 쿼리 성능을 향상하려면 어떻게 해야 합니까?

MySQL에서 UUID 스토리지를 최적화하고 쿼리 성능을 향상하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-16 12:18:03912검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.