Kayan olmayanlara karşı dizgi karşılaştırmasının gerçek performansına bakıldığında, bu durumda işaretsiz ve işaretli herhangi bir boyut önemli değildir. Boyut aslında performanstaki gerçek farktır. 1 bayt + (126 bayta kadar) ile 1,2,4 veya 8 bayt karşılaştırması ... açıkçası kayan olmayanlar dizelerden ve kayanlardan daha küçüktür ve dolayısıyla montajda daha CPU dostudur.
Tüm dillerde dizge-dizge karşılaştırması , CPU tarafından 1 komutta karşılaştırılabilecek bir şeyden daha yavaştır. 32 bit CPU'da 8 baytı (64 bit) karşılaştırmak bile bir VARCHAR (2) veya daha büyük bir işlemden daha hızlıdır. * Yine, üretilen derlemeye bakın (elle bile), karakter ile karakter karşılaştırmak için 1 ila 8 bayt CPU sayısal değerinden daha fazla talimat gerekir.
Şimdi, ne kadar hızlı? ayrıca veri hacmine de bağlıdır. Sadece 5'i 'audi' ile karşılaştırıyorsanız - ve DB'nizin sahip olduğu tek şey buysa, ortaya çıkan fark o kadar küçüktür ki, onu asla göremezsiniz. İşlemciye, uygulamaya (istemci / sunucu, web / komut dosyası, vb.) Bağlı olarak, DB sunucusunda birkaç yüz karşılaştırmaya (belki de fark edilmeden önce belki birkaç bin karşılaştırma) ulaşana kadar görmeyeceksiniz.
- Hash karşılaştırmalarıyla ilgili yanlış anlaşmazlığı ortadan kaldırmak için. Çoğu karma algoritmanın kendisi yavaştır, bu nedenle CRC64 ve daha küçük şeylerden yararlanamazsınız. 12 yıldan fazla bir süredir, çok ülkeli arama motorları için arama algoritmaları ve kredi büroları için 7 yıl geliştirdim. Sayısal olarak daha hızlı tutabileceğiniz her şey ... örneğin telefon numaraları, posta kodları, hatta para birimi * 1000 (depolama) para birimi div 1000 (alma), karşılaştırmalar için DECIMAL'den daha hızlıdır.
Ozz