Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Implikasi ruang disk dari pengaturan nilai kolom MySQL ke NULL alih-alih 0 atau ''

Tidak, menggunakan NULL tidak akan memakan lebih sedikit ruang daripada VARCHAR yang kosong atau INT bidang. Bahkan mungkin butuh lebih ruang angkasa. Inilah alasannya:

Sebuah VARCHAR disimpan sebagai ukuran + nilai. Jumlah byte yang digunakan untuk ukuran tergantung pada penyimpanan maksimum VARCHAR . VARCHAR(255) membutuhkan satu byte, VARCHAR(65536) membutuhkan dua byte dan seterusnya.

Sehingga VARCHAR(255) kolom membutuhkan satu byte bahkan jika Anda menyimpan string kosong. Tabel berikut akan mengambil minimal satu byte per baris (ditambah beberapa kemungkinan overhead lainnya tergantung pada mesin penyimpanan).

CREATE TABLE sample (
  a VARCHAR(255) NOT NULL
);

Untuk menyimpan NULL nilai, MySQL menggunakan bitmask untuk setiap baris. Hingga 8 kolom nullable dapat disimpan per byte. Jadi jika Anda memiliki tabel seperti ini:

CREATE TABLE sample (
  a VARCHAR(255) NULL
);

Akan membutuhkan minimal dua byte per baris. Menyimpan NULL hanya mengatur sedikit, itu sudah dipesan apakah Anda menggunakannya atau tidak. Byte untuk VARCHAR ukuran 's masih digunakan untuk setiap baris meskipun kolom disetel ke NULL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menulis penghitung hit yang efisien untuk situs web

  2. Mengapa saya tidak menggunakan fungsi mysql_* di PHP?

  3. Kueri untuk menghitung jarak macet di PostgresDB

  4. Database Load Balancing di Cloud - MySQL Master Failover dengan ProxySQL 2.0:Bagian Satu (Penerapan)

  5. Mysql:Perbarui bidang catatan terbaru