Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL diễn giải kích thước trường VARCHAR như thế nào?

A VARCHAR(255) có thể lưu trữ tối đa 255 ký tự, bất kể số byte trên mỗi ký tự theo yêu cầu của mã hóa bộ ký tự.

Yêu cầu lưu trữ là độ dài của dữ liệu thực được lưu trữ (không phải tối đa), cộng với 1 hoặc 2 byte để lưu trữ độ dài của dữ liệu - 1 byte được sử dụng trừ khi độ dài tối đa có thể tính bằng byte> 255 ... vì vậy a VARCHAR(255) COLLATE utf8mb4 sử dụng 2 byte để lưu trữ độ dài, trong khi VARCHAR(255) COLLATE ascii_general_ci sử dụng 1 byte để lưu trữ độ dài. Một trong hai cột không được lưu trữ quá 255 ký tự.

Khai báo kích thước cột sao cho phù hợp với dữ liệu đang được lưu trữ. Việc sử dụng 255 là phổ biến, nhưng thường là một dấu hiệu đỏ của thiết kế cẩu thả, vì hiếm khi giá trị cụ thể này biểu thị một cách có ý nghĩa độ dài thích hợp tối đa của một cột.

Ngược lại, CHAR(255) COLLATE utf8mb4 luôn sử dụng 255 × 4 (tối đa có thể) byte trên mỗi cột trên hàng và 0 byte để lưu trữ độ dài, vì độ dài được lưu trữ không thay đổi. Các cột này hiếm khi thích hợp, ngoại trừ khi cột luôn có độ dài đã biết và bộ ký tự là byte đơn, chẳng hạn như UUID, sẽ là 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. Lỗi kết nối MySQL RDS và JDBC SSL:không thể tìm thấy đường dẫn chứng nhận hợp lệ đến mục tiêu được yêu cầu

  2. bước kết thúc truy vấn rất dài vào các thời điểm ngẫu nhiên

  3. Đặt hàng theo DESC không hoạt động cho biến tùy chỉnh $ how

  4. lỗi mysql_fetch_assoc () khi dữ liệu trong trường mysql bị thay đổi

  5. MySQL CHỌN DISTINCT nhiều cột