Motoruna bağlı. Yaygın bilgelik, okumaların ucuz olduğu, burada birkaç bayt olduğu ve küçük ila orta büyüklükteki bir veritabanının performansını önemli ölçüde etkilemeyeceği yönündedir.
Daha da önemlisi, birincil anahtarı hangi kullanım alanına koyacağınıza bağlıdır. Tamsayılı diziler, kullanımı ve uygulaması basit olma avantajına sahiptir. Ayrıca, serileştirme yönteminin özel bir şekilde uygulanmasına bağlı olarak, çoğu veri tabanı derhal türetmek yerine sabit bir yerde saklandığından, hızlı bir şekilde türetilebilir olma avantajına sahiptir Select max(ID)+1 from foo
.
Soru şu: 5 karakterli bir anahtar, size ve uygulamaya nasıl "anlamlı bir değer" sunuyor? Bu değer nasıl oluşturulur ve artan bir seri numarası bulmaktan daha az veya çok zaman alır mı? Bazı tam sayılarda kaydedilmiş önemsiz miktarda alan olmasına rağmen, sistemlerin büyük çoğunluğu bu alan tasarrufunu göz ardı edecektir.
Performans çıkarımı yoktur, karakter düzeninin asla otomatik bir motor olmasını gerektirmediğinden tasarruf edin , çünkü "tuşlarınız" keşfedilemez. Alan adınız için yapay anahtarlarla uğraşmayın ve yalnızca Çince, Japonca ve Tayca'yı anahtar adları olarak kullanın. Herhangi bir olası uygulamada benzersizliği garanti edemeseniz de, kapsamınız dahilinde, bunları korkunç ve zorla 5 karakterli kısaltmalar yerine kullanmak çok daha makul olacaktır. Milyonlarca tülü elde edene kadar önemli bir performans etkisi olmaz.
Alternatif olarak, yalnızca menşe ülkesine göre takip ediyorsanız ve belirli bölgesel mutfaklardan (Kanton, Sichuan, Sicilya, Umbrian, Calabrian, Yucatecan, Oaxacan, vb.) Takip ediyorsanız, her zaman sadece ISO 3166 kodlarını kullanabilirsiniz .
10.000 tarifim varsa, 5 karakter ve 20 karakter arasında bir fark oluşmaya başlamaz mı?
Alan ucuzdur . O zaman belki OLAP işlemleri yaptığınız 10,000,000 yemek tarifinden bahsediyorsunuz. 10k tarifleri ile 150k uzaya bakıyorsunuz.
Fakat yine de buna bağlı. Milyonlarca kaydınız varsa ve bunlara katılıyorsanız, bu kadar önemsiz bir şey için aramayı denormalize etmek mantıklı olur (maddi bir görünüme). Tüm pratik amaçlar için, 5 karakterli bir anahtar ve değişken uzunluklu anahtar arasındaki modern bir makinede bağıl birleştirme verimliliği aynı olacak şekilde benzerdir. Neyse ki, bol miktarda CPU ve bol miktarda disk dünyasında yaşıyoruz. Pis olanlar çok fazla katılır ve sorgu verimsizlik yerine karakter bazında karakteri karşılaştırması. Bununla birlikte, her zaman test et .
Bu seviyedeki P&T işleri, veritabanına bağımlıdır ve genellemeler son derece zordur. Veritabanının iki örnek modelini oluşturun, bunları tahmini kayıt sayılarıyla doldurun, sonra hangisinin daha hızlı olduğunu görün. Deneyimlerime göre, karakter uzunluğu, iyi dizinler, iyi bellek yapılandırmaları ve diğer kritik performans ayarlama öğeleri ile karşılaştırıldığında çok büyük bir fark yaratmıyor.