mysql int(11) ile int(3) arasındaki fark
Yazan: ayhan,DigerTags/Kelimeler: mysql int(11) ile int(3) arasındaki fark
mysql int(11) ile int(3) arasındaki fark.
tahmin edildiğinin tersine int(3) ve int(11) sayı değeri olarak aynı sayıları tutabilir.
1234567 sayısını int(3) veya int(11) olarak tanımlanmış bir alanda tutabiliriz.
Sayı Değerlerini belirten kısım mysql veri tipidir.
Column Type Bytes On Disk Signed Storage Range Unsigned Storage Range
tinyint 1 bytes -128 to 127 0 to 255
smallint 2 bytes -32768 to 32767 0 to 65535
mediumint 3 bytes -8388608 to 8388607 0 to 16777215
int 4 bytes -2147483648 to 2147483647 0 to 4294967295
bigint 8 bytes -9223372036854775808 to 9223372036854775807 0 to 18446744073709551615
Parantez içindeki int(3) , int(11) ise zerofill özelliğinde devreye giriyor;
mysql> create table t (t int(3) zerofill);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.00 sec)
mysql> select * from t;
+——+
| t |
+——+
| 010 |
+——+
1 row in set (0.11 sec)
mysql> create table t (t int(11) zerofill);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.02 sec)
mysql> select * from t;
+————+
| t |
+————+
| 00000000010 |
+————+
1 row in set (0.08 sec)
Yani parantez içindeki sayı , görüntülenebilir kısmı temsil ediyor. Sayının alabileceği değerlere bir etkisi yok.
http://dev.mysql.com/doc/refman/5.6/en/numeric-type-overview.html
Entries (RSS)
08/09/2011 , 03:13
bildiğim kadarıyla,
mysql
int(33) için 33 baytt
int(255) için 255 bayt
smallint(2) için 2bayt
… yer açıyormuş (ahım şahım bir alan/performans farkı olmayabilir)
performans için ne gerekiyorsa onu açın derler,
mysql in kendi yapı önerme fonksiyonu da bu yönde tavsiye yapıyor.
08/09/2011 , 03:59
int(33) , int(255) de 4 byte yer açar. parantez içindeki deger zerofill de görüntülenecek basamak sayısıdır.