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

Bagaimana MySQL menginterpretasikan ukuran bidang VARCHAR?

Sebuah VARCHAR(255) dapat menyimpan hingga 255 karakter, terlepas dari jumlah byte per karakter yang diperlukan oleh pengkodean kumpulan karakter.

Persyaratan penyimpanan adalah panjang data aktual yang disimpan (bukan maksimum), ditambah 1 atau 2 byte untuk menyimpan panjang data -- 1 byte digunakan kecuali panjang maksimum yang mungkin dalam byte> 255... jadi VARCHAR(255) COLLATE utf8mb4 menggunakan 2 byte untuk menyimpan panjangnya, sedangkan VARCHAR(255) COLLATE ascii_general_ci menggunakan 1 byte untuk menyimpan panjangnya. Salah satu kolom dapat menyimpan tidak lebih dari 255 karakter.

Nyatakan ukuran kolom yang sesuai untuk data yang disimpan. Menggunakan 255 adalah hal yang umum, tetapi biasanya merupakan tanda merah dari desain yang ceroboh, karena jarang nilai khusus ini secara bermakna mewakili panjang maksimum kolom yang sesuai.

Sebaliknya, sebuah CHAR(255) COLLATE utf8mb4 selalu mengkonsumsi 255 × 4 (maksimum mungkin) byte per kolom per baris, dan 0 byte untuk menyimpan panjangnya, karena panjang yang disimpan tidak bervariasi. Kolom-kolom ini jarang sesuai, kecuali jika panjang kolom selalu diketahui dan set karakter adalah byte tunggal, seperti UUID, yang akan menjadi CHAR(36) COLLATE ascii_general_ci .

https:// /dev.mysql.com/doc/refman/5.7/en/storage-requirements.html#data-types-storage-reqs-strings



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan MySQL yang sangat spesifik yang ingin saya tingkatkan

  2. Permintaan mysql menggunakan di mana dan kelompokkan dengan klausa

  3. Bagaimana saya bisa menggabungkan dua tabel dengan jumlah baris yang berbeda di MySQL?

  4. Contoh MySQL untuk Visual Basic 6.0 - baca/tulis

  5. mysql bergabung dengan tabel yang sama, set hasil yang berbeda