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

InnoDB lưu trữ các cột ký tự như thế nào?

Từ MySQL Tài liệu :

Sự khác biệt giữa CHARVARCHAR là cách chúng được lưu trữ, CHAR (10) yêu cầu dung lượng lưu trữ 10 byte cho dù bạn sử dụng bao nhiêu ký tự vì dữ liệu được đệm bên phải bằng dấu cách, VARCHAR (10) chỉ chiếm 1 byte (trong bộ ký tự 1 byte) + tiền tố độ dài (1 khi độ dài là 255 trở xuống, 2 nếu không ... Tôi không biết tại sao key_len cho EXPLAIN thêm 2 byte)

Tôi không hiểu ý bạn với khoảng trống ở cuối, mặc dù tôi có thể tưởng tượng bạn đang nói đến việc thừa khoảng trắng ở cuối, với VARCHAR chúng được cắt ngắn với một cảnh báo, trong khi đó trong CHAR các cột này bị cắt ngắn một cách âm thầm, điều này có lý do nào đó CHAR được lưu trữ với các khoảng trống ở cuối.

Về bộ ký tự trong liên kết này bạn có thể thấy rằng số ký tự cho CHAR hoặc VARCHAR giống nhau, mặc dù vậy, bộ nhớ của bạn sẽ yêu cầu từ 1 đến 4 byte cho mỗi ký tự, tại đây là danh sách bộ ký tự được hỗ trợ và tại đây byte cho mỗi ký tự.

Những gì tôi đã đọc về định dạng hàng khác nhau cho InnoDB

Đặc điểm định dạng hàng dự phòng :

Đặc điểm định dạng hàng NHỎ GỌN :




  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ưu dữ liệu bằng tiếng Ả Rập trong cơ sở dữ liệu MySQL

  2. Bản sao cục bộ của cơ sở dữ liệu RDS

  3. Mối quan hệ bảng MyISAM Engine (MySQL)

  4. Android:Làm thế nào để gửi dữ liệu đến MySQL DB mà không sử dụng JDBC, PHP hoặc bất kỳ dịch vụ web nào khác?

  5. Mật khẩu so sánh PHP và MySQL