Evolusi UUID: Memahami Versi 1, 6, dan 7
Pengenalan Unik Sejagat (UUID) telah menjadi asas kepada sistem teragih selama dekad, menyediakan cara yang boleh dipercayai untuk menjana kunci unik tanpa koordinasi terpusat. Walaupun UUID versi 4 (yang bergantung sepenuhnya pada nombor rawak) boleh dikatakan varian paling terkenal dan paling meluas digunakan, ia mempunyai had mendasar apabila digunakan sebagai kunci utama dalam sistem pengurusan pangkalan data hubungan (RDBMS). Kerawakan sangat bagus untuk ketidakpastian, tetapi sangat buruk untuk pengindeksan pangkalan data. Apabila anda memasukkan UUID rawak ke dalam indeks B-tree, ia menyebabkan pembahagian halaman yang besar dan pemecahan indeks, membawa kepada penurunan prestasi penulisan dari semasa ke semasa. Di sinilah UUID berasaskan masa—khususnya versi 1, 6, dan 7—berperanan, menawarkan alternatif terstruktur yang menghormati keunikan dan susunan mengikut masa.
UUID versi 1 ialah percubaan asal untuk menggabungkan keunikan dengan masa. Ia menjana pengenal pasti menggunakan cap masa semasa, jujukan jam (clock sequence), dan alamat MAC nod. Penglibatan alamat MAC menjamin keunikan ruang di pelbagai mesin, manakala cap masa menjamin keunikan masa. Walau bagaimanapun, UUID v1 mempunyai kelemahan kritikal untuk pengindeksan pangkalan data: cap masanya distrukturkan dengan bit paling ketara mewakili kehalusan masa terendah. Dalam istilah mudah, apabila masa berlalu, permulaan rentetan UUID berubah dengan cepat dan tidak menentu, memusnahkan potensi untuk pengisihan berurutan. Selain itu, mendedahkan alamat MAC menimbulkan kebimbangan privasi dan keselamatan yang ketara, menyebabkan ramai pembangun meninggalkan v1 sepenuhnya.
Untuk menyelesaikan masalah ini, komuniti kejuruteraan memperkenalkan UUID versi 6 dan versi 7. UUID v6 pada dasarnya adalah UUID v1 yang disusun semula. Ia mengambil komponen cap masa v1 dan menyusunnya semula supaya bit paling ketara mewakili kehalusan masa tertinggi (tahun, bulan, hari). Penyusunan semula yang mudah ini memastikan nilai UUID v6 boleh diisih secara leksikografi mengikut masa. Jika anda menjana UUID v6 hari ini dan satu lagi esok, UUID esok akan diisih selepas hari ini, sejajar dengan jangkaan B-tree pangkalan data. Ini menghapuskan pemecahan indeks yang berkaitan dengan v4 dan ketidakmungkinan pengisihan v1.
UUID versi 7 membawa pengoptimuman ini selangkah lebih jauh dan mewakili piawaian emas moden untuk kunci utama pangkalan data. Daripada bergantung pada zaman Gregorian lama yang digunakan oleh v1 dan v6, UUID v7 menggunakan cap masa Epoch Unix standard (milisaat sejak 1 Jan 1970 UTC). Cap masa ini menduduki 48 bit pertama pengenal pasti. Bit selebihnya diisi dengan data rawak yang kuat secara kriptografi. Pendekatan hibrid ini memberikan yang terbaik daripada kedua-dua dunia: pengisihan berurutan yang kukuh yang diperlukan untuk pembentukan pangkalan data berprestasi tinggi, digabungkan dengan keselamatan dan privasi janaan data rawak. Dengan menggunakan penjana UUID dalam pelayar kami yang 100% percuma dan peribadi, anda boleh menjana pengenal pasti moden ini dengan serta-merta tanpa mempertaruhkan data anda.