Untuk menjawab pertanyaan Anda:ya, performanya akan lebih sedikit. Jelas, semakin besar tipenya, semakin besar tabelnya, semakin lambat kuerinya (lebih banyak I/O, indeks lebih besar, waktu akses lebih lama, hasil lebih kecil kemungkinannya untuk masuk ke berbagai cache, dan seterusnya). Jadi sebagai aturan praktis:selalu gunakan tipe terkecil yang sesuai dengan kebutuhan Anda.
Meskipun demikian, kinerja tidak masalah . Mengapa? Karena ketika Anda mencapai titik di mana Anda meluapkan INT, maka BIGINT adalah satu-satunya solusi dan Anda harus menghadapinya. Juga pada saat itu (mengingat Anda menggunakan PK kenaikan otomatis, Anda akan lebih dari 4 miliar baris), Anda akan memiliki masalah kinerja yang lebih besar, dan overhead BIGINT dibandingkan dengan INT akan menjadi kekhawatiran Anda yang paling kecil.
Jadi, pertimbangkan poin-poin berikut:
- Gunakan UNSIGNED jika Anda tidak membutuhkan nilai negatif, itu akan menggandakan batas.
- Nilai maksimal INT yang tidak ditandatangani adalah 4.294.967.295. Jika Anda menggunakan PK kenaikan otomatis, dan Anda hanya memiliki 300.000 entri, Anda tidak perlu khawatir . Anda bahkan dapat menggunakan MEDIUMINT saat ini, kecuali jika Anda berencana untuk pertumbuhan yang sangat cepat. (lihat http://dev.mysql.com/doc /refman/5.1/en/integer-types.html )
- Angka dalam kurung setelah jenis tidak memengaruhi nilai maksimum jenis . INT(7) sama dengan INT(8) atau INT(32). Ini digunakan untuk menunjukkan lebar tampilan jika Anda menentukan ZEROFILL (lihat http://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html )