2011-09-04 12 views
5

Biz hepsini birincil anahtar olarak 8 bayt ikili dize sahip MySQL (InnoDB) Tablodaki birçok satırı saklamak gerekir. bu (8), sabit uzunlukta, veya ikili (böylece 64-bit, 8-bayt, tamsayı içerir) BIGINT sütun türü kullanmak iyi oldu Hava merak.MySQL: birincil anahtar 8 baytlık bir dizedir. BIGINT veya BINARY (8) kullanmak daha mı iyi?

biz ikili dizeleri bana daha tutarlı sesler saklayarak, sayılar bizim uygulamada dizeleri olarak bu kimliği kullanarak ve değiliz beri. Ancak, bununla ilgili performans sorunları olup olmadığını merak ediyorum. hiç fark yapar mı? önemli olan ise

biz okuma/(page_id = 0x1122334455667788 gibi) heks gösterimi kullanılarak bu kimliklerini saklamak. Bir PHP uygulaması yazdığımızdan ve bildiğiniz gibi, "imzasız uzun bir int" tipi olmadığından, tamsayıları sorgular içinde kullanmazdık, dolayısıyla tüm tamsayılar makineye bağlı boyuttadır.

cevap

2

ben ikili (8) Bu eşleşirse tasarımınızı kullanmayı tercih ediyorum. Aksi takdirde, bir yerde performans veya karmaşıklıkta her zaman bir dönüşüm ek yüküne sahip olursunuz. RDBMS düzeyinde tipleri arasında (varsa) çok fark olmayacak