Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyimpan UUID sebagai Nombor dalam MySQL untuk Keuntungan Prestasi?

Bagaimana untuk Menyimpan UUID sebagai Nombor dalam MySQL untuk Keuntungan Prestasi?

Linda Hamilton
Linda Hamiltonasal
2024-11-17 03:26:03977semak imbas

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

Cara Menyimpan UUID sebagai Nombor dalam MySQL

Menyimpan UUID sebagai nombor menawarkan kelebihan prestasi berbanding menyimpannya sebagai rentetan. Berikut ialah panduan langkah demi langkah tentang cara untuk mencapai ini dalam MySQL:

  1. Tukar UUID kepada Rentetan Binari:
    Alih keluar sempang daripada UUID dan tukarkannya kepada rentetan binari tunggal. Sebagai contoh, jika UUID asal anda ialah "110E8400-E29B-11D4-A716-446655440000," ia menjadi "110E8400E29B11D4A716446655440000."
  2. Bidang Buat medan BINARI dalam jadual MySQL anda dengan panjang yang sepadan dengan panjang UUID binari anda (16 dalam contoh kami). Ini boleh dilakukan menggunakan:

    CREATE TABLE my_table (
        uuid BINARY(16) NOT NULL
    );
  3. Masukkan UUID Binari:Masukkan UUID binari ke dalam medan menggunakan fungsi UNHEX():

    INSERT INTO my_table (uuid) VALUES (UNHEX('110E8400E29B11D4A716446655440000'));
  4. Dapatkan dan Tukar kepada UUID:Apabila mendapatkan semula UUID daripada pangkalan data, pilih medan BINARI dan gunakan fungsi HEX() untuk menukarnya kembali kepada UUID yang ditanda sempang:

    SELECT HEX(uuid) AS original_uuid FROM my_table;
  5. Kod Ruby Penyepaduan:

    Sisipan:Tukar UUID kepada rentetan binari menggunakan ActiveSupport::Digest::UUID.binary_pack(uuid). Kemudian gunakan fungsi UNHEX() untuk mengubahnya kepada rentetan hex sebelum memasukkannya ke dalam medan.

    Pendapatan semula:Dapatkan UUID binari dari medan dan tukarkannya kepada rentetan hex menggunakan HEX(). Anda kemudiannya boleh menggunakan ActiveSupport::Digest::UUID.uuid_unpack() untuk menukar hex UUID kembali kepada format asalnya.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan UUID sebagai Nombor dalam MySQL untuk Keuntungan Prestasi?. 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