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

Apakah kolom char / varchar / text / longtext di MySQL menempati ukuran penuh dalam sistem file bahkan untuk sel yang terisi sebagian?

Lihat http://dev.mysql.com /doc/refman/5.7/en/string-type-overview.html

Pada dasarnya, semua tipe ini kecuali CHAR adalah panjang variabel.

Misalnya, jika Anda memiliki VARCHAR(72) dan Anda menulis abcd ke dalamnya, Anda akan menyimpan 5 byte. 4 byte untuk setiap karakter, dan awalan 1 byte untuk menyimpan panjang string (yaitu 4).

Jika panjang string lebih dari 255 karakter, maka awalan VARCHAR akan menjadi 2 byte. Jadi VARCHAR(300) dengan 256 karakter string yang disimpan di dalamnya akan memakan waktu 258 byte.

TINYTEXT selalu memiliki awalan 1 byte, karena Anda hanya dapat menyimpan 255 karakter di dalamnya, jadi abcd akan memakan waktu 5 byte.

TEXT memiliki awalan 2 byte, jadi abcd akan menjadi 6 byte.

LONGTEXT memiliki awalan 4 byte, jadi abcd akan menjadi 8 byte.

Terakhir, ada CHAR yang hampir tidak berguna Tipe. Sebuah CHAR(72) akan selalu mengambil 72 byte tidak peduli apa yang Anda simpan di dalamnya. Ini benar-benar hanya berguna untuk bidang super pendek di mana selalu ada jumlah karakter yang sama persis di bidang tersebut. Seperti Y atau N akan menjadi CHAR(1) . yang bagus calon.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat mengatur ulang Kata Sandi Root:windows, MySQL8.0

  2. MySQL Pilih baris dengan kunci atau mundur untuk memilih dengan kunci default

  3. periksa apakah ada nilai di json encode array di mysql

  4. memilih baris yang telah terjadi lebih dari tiga kali

  5. mysql - memilih nilai dari tabel yang diberikan nomor kolom