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

Các cột char / varchar / text / longtext trong MySQL có chiếm kích thước đầy đủ trong hệ thống tệp ngay cả đối với các ô được lấp đầy một phần không?

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

Về cơ bản, tất cả các loại này ngoại trừ CHAR là chiều dài thay đổi.

Ví dụ:nếu bạn có VARCHAR(72) và bạn viết abcd vào đó, bạn sẽ lưu trữ 5 byte. 4 byte cho mỗi ký tự và tiền tố 1 byte để lưu trữ độ dài của chuỗi (là 4).

Nếu độ dài của chuỗi trên 255 ký tự, thì tiền tố VARCHAR sẽ là 2 byte. Vì vậy, một VARCHAR(300) với một chuỗi 256 ký tự được lưu trữ trong nó sẽ chiếm 258 byte.

TINYTEXT luôn có tiền tố 1 byte, vì bạn chỉ có thể lưu trữ 255 ký tự trong đó, vì vậy abcd sẽ mất 5 byte.

TEXT có tiền tố 2 byte, vì vậy abcd sẽ là 6 byte.

LONGTEXT có tiền tố 4 byte, vì vậy abcd sẽ là 8 byte.

Cuối cùng, có CHAR gần như vô dụng gõ phím. A CHAR(72) sẽ luôn chiếm 72 byte bất kể bạn lưu trữ gì trong đó. Nó thực sự chỉ hữu ích cho các trường siêu ngắn, nơi luôn có cùng một số ký tự chính xác trong trường. Thích Y hoặc N sẽ là một CHAR(1) tốt ứng viê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àm thế nào để hạn chế phiếu bầu mỗi ngày theo IP trong bỏ phiếu Php + Mysql?

  2. mysql:chọn, chèn, xóa và cập nhật trong một truy vấn

  3. Câu hỏi thực hành tốt nhất cho MySQL:thứ tự theo id hoặc ngày?

  4. Tìm và loại bỏ các hàng trùng lặp theo hai cột

  5. Perl DBI chèn nhiều hàng bằng khả năng chèn nhiều gốc mysql