Baik Anda memiliki ruang database kecil yang kosong atau situs web e-niaga yang besar, database harus merancang struktur tabel secara wajar dan memanfaatkan ruang tersebut sepenuhnya. Hal ini mengharuskan kita untuk memiliki pemahaman penuh dan penerapan yang masuk akal tentang tipe data umum dalam sistem database. Di bawah ini kami akan memperkenalkan kepada Anda beberapa pengalaman dan pengalaman, dengan harapan dapat membantu Anda berpikir lebih rasional saat membangun database.
1. Jenis nomor
Tipe numerik dibagi menjadi tiga kategori menurut metode klasifikasi saya: tipe integer, tipe desimal, dan tipe numerik.
Apa yang saya sebut "kelas numerik" mengacu pada DECIMAL dan NUMERIC, yang merupakan tipe yang sama. Ini bukan tipe numerik, karena sebenarnya menyimpan angka dalam bentuk string; setiap digit nilainya (termasuk koma desimal) menempati satu byte ruang penyimpanan, sehingga tipe ini menghabiskan banyak ruang untuk perbandingan. Namun, salah satu keunggulannya yang luar biasa adalah angka desimalnya tetap dan tidak akan "terdistorsi" selama pengoperasian, sehingga lebih cocok untuk bidang seperti "harga" dan "jumlah" yang tidak memerlukan presisi tinggi tetapi memerlukan presisi yang sangat tinggi. ketepatan.
Tipe desimal, yaitu tipe bilangan floating point, memiliki dua tipe, FLOAT dan DOUBLE, bergantung pada presisinya. Keunggulannya adalah akurasi. sekitar 2.22E-308 (0.000...0222, 307 angka nol setelah koma desimal) sebagai desimal. Ruang penyimpanan yang ditempati oleh tipe FLOAT dan tipe DOUBLE masing-masing adalah 4 byte dan 8 byte. Jika perlu menggunakan kolom desimal dan akurasinya tidak tinggi, tentu saja gunakan FLOAT. Namun sejujurnya, bagaimana data "sipil" kita memerlukan akurasi setinggi itu? Sejauh ini saya belum pernah menggunakan kedua jenis ini - saya belum menemukan kasus yang cocok untuk menggunakannya.
Tipe yang paling banyak digunakan, dan paling layak untuk dihitung secara cermat, adalah tipe integer. Dari TINYINT yang hanya menempati ruang penyimpanan satu byte, hingga BIGINT yang menempati 8 byte, pemilihan tipe yang "cukup" dan menempati ruang penyimpanan terkecil harus dipertimbangkan saat mendesain database. TINYINT, SMALLINT, MEDIUMINT, INT dan BIGINT masing-masing menempati ruang penyimpanan sebesar 1 byte, 2 byte, 3 byte, 4 byte, dan 8 byte. Sedangkan untuk bilangan bulat tak bertanda, bilangan bulat maksimum yang dapat diwakili oleh tipe ini masing-masing adalah 255, 65535, 16777215. , 4294967295 dan 18446744073709551615. Jika digunakan untuk menyimpan usia pengguna (misalnya, tidak disarankan untuk menyimpan usia di database), TINYINT sudah cukup; di "Zongheng" Jiucheng, SMALLINT sudah cukup untuk setiap nilai keterampilan; bidang IDENTIFIKASI AUTO_INCREMENT dalam tabel yang pasti tidak akan melebihi 16.000.000 baris. Tentu saja, gunakan MEDIUMINT daripada INT. Bayangkan saja, setiap baris menghemat satu byte.