MySQL veritabanımız için birincil anahtarlar olarak UUID değerlerini kullanmayı düşünüyoruz. Eklenen veriler düzinelerce, yüzlerce ve hatta binlerce uzak bilgisayardan üretilir ve saniyede 100-40.000 ekleme hızında eklenir ve hiçbir zaman güncelleme yapmayız.
Veritabanının kendisi, biz verileri toplamaya başlamadan önce genellikle yaklaşık 50 milyon kayda ulaşacaktır, bu nedenle çok büyük bir veritabanı değil, küçük de değil. Ayrıca InnoDB üzerinde çalışmayı planlıyoruz, ancak yaptığımız şey için daha iyi bir motor varsa bunu değiştirmeye açıkız.
Java'nın Type 4 UUID'sini kullanmaya hazırdık, ancak test sırasında bazı garip davranışlar görüyoruz. Birincisi, varchar (36) olarak depoluyoruz ve şimdi ikili (16) kullanmanın daha iyi olacağının farkındayım - ne kadar iyi olduğundan emin değilim.
Daha büyük soru şudur: 50 milyon kaydımız varken bu rastgele veriler endeksi ne kadar kötü bir şekilde alt üst ediyor? Örneğin, en soldaki bitlerin zaman damgalı olduğu bir tip-1 UUID kullansaydık daha iyi olur muyduk? Veya belki de UUID'leri tamamen atmalı ve auto_increment birincil anahtarlarını düşünmeliyiz?
MySQL'de bir dizin / birincil anahtar olarak depolandıklarında farklı UUID türlerinin performansı hakkında genel düşünceler / ipuçları arıyorum. Teşekkürler!