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

Tác động của việc thay đổi độ dài của varchar trong mysql là gì?

Chiều dài của cột varchar được cố định với độ dài bạn khai báo khi tạo bảng. Độ dài có thể là bất kỳ giá trị nào từ 0 đến 255 (trước MySQL 5.0.3) và từ 0 đến 65,535 (trong MySQL 5.0.3 trở lên).

Lưu trữ của varchar là các byte dữ liệu có thêm một hoặc hai byte để khai báo độ dài của chuỗi. Nếu độ dài tối đa là 255 trở xuống thì chỉ 1 byte độ dài sẽ được thêm vào.

Nếu bạn sử dụng bảng thay đổi và thay đổi độ dài tối đa thì kích thước lưu trữ dữ liệu sẽ không bị ảnh hưởng nếu độ dài tối đa được xác định dưới 255. Nếu bạn đang tăng độ dài tối đa trên 255 thì tùy thuộc vào công cụ lưu trữ nếu nó buộc hai byte hoặc không dành cho các giá trị dưới 255, trong trường hợp đó, nó sẽ tăng 1 byte cho mỗi hàng.

Kiểu char khác với varchar vì char luôn sử dụng không gian cần thiết, vì vậy nếu bạn có char (10) và varchar (10) nhưng chỉ lưu trữ "hello" trong mỗi kiểu, char sẽ sử dụng tất cả 10 byte, vharchar sẽ chứa 6 byte ( 5 cho hello và 1 cho chiều dài), do đó, việc thay đổi kích thước của các cột varchar sẽ không phân bổ thêm không gian lưu trữ như nếu nó là kiểu char.

Câu hỏi thực sự bây giờ là tại sao bạn lại muốn PHP thao tác với kích thước varchar? Bạn nên chỉ định kích thước vì một lý do, nếu bạn muốn trường có độ dài thay đổi có thể chứa nhiều văn bản (hơn 65,535 byte) và cũng động để nó chỉ sử dụng không gian tối thiểu cần thiết có thể các loại TEXT có thể tốt hơn cho tình huống của bạ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 để đồng bộ hóa dbfs Visual Foxpro với MySQL?

  2. Phát hiện hỗ trợ mysql trong php

  3. Làm cách nào để kết hợp AND và OR trong câu lệnh SQL của mình

  4. Cách tìm nạp dữ liệu ngày trước trong php mysql

  5. Hiển thị tất cả các tên bảng trong php từ cơ sở dữ liệu MySQL