Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh mengoptimumkan storan UUID dalam MySQL dan meningkatkan prestasi pertanyaan?

Bagaimanakah saya boleh mengoptimumkan storan UUID dalam MySQL dan meningkatkan prestasi pertanyaan?

DDD
DDDasal
2024-11-16 12:18:03912semak imbas

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

Mengoptimumkan Storan UUID dalam MySQL: Menukar kepada Nombor

Walaupun UUID menawarkan keunikan, storan mereka sebagai rentetan dalam MySQL boleh menghalang prestasi. Untuk meningkatkan kecekapan pengambilan data, adalah dinasihatkan untuk menyimpan UUID sebagai nombor sebaliknya.

Proses Penukaran

  1. Alih Keluar Sempang:
    Hapuskan sempang daripada UUID, mis., "110E8400-E29B-11D4-A716-446655440000" menjadi "110E8400E29B11D4A716446655440000".
  2. BINARY(🎜>BINARI(🎜) Saya:BINARI(16) UUID dengan cekap dalam bidang BINARI. Memandangkan UUID mempunyai 128 bit, BINARY(16) adalah ideal, menampung saiz UUID penuh.
  3. Sisipkan Menggunakan UNHEX():Masukkan UUID ke dalam medan BINARI menggunakan fungsi UNHEX(), cth.:

    INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))
  4. Pertanyaan Menggunakan HEX():Untuk mendapatkan semula UUID, gunakan fungsi HEX(), cth.:

    SELECT HEX(FieldBin) AS FieldBin FROM Table
  5. Tambah semula Sempang:Dalam kod Ruby anda, masukkan semula sempang pada kedudukan yang sesuai agar sepadan dengan format UUID asal.

Contoh

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
Dengan menyimpan UUID sebagai nombor, anda boleh mengoptimumkan pengambilan data dalam MySQL, meningkatkan pertanyaan dengan ketara prestasi.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengoptimumkan storan UUID dalam MySQL dan meningkatkan prestasi pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn