Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jaki wpływ ma zmiana długości varchara w mysql?

Długość kolumny varchar jest ustalona na długość zadeklarowaną podczas tworzenia tabeli. Długość może być dowolną wartością od 0 do 255 (przed MySQL 5.0.3) i od 0 do 65 535 (w MySQL 5.0.3 i nowszych).

Przechowywanie varchar to bajty danych z dodatkiem jednego lub dwóch bajtów do zadeklarowania długości ciągu. Jeśli maksymalna długość wynosi 255 lub mniej, zostanie dodany tylko 1 bajt długości.

Jeśli użyjesz alter table i zmienisz maksymalną długość, nie wpłynie to na rozmiar przechowywania danych, jeśli maksymalna zdefiniowana długość jest mniejsza niż 255. Jeśli zwiększasz maksymalną długość powyżej 255, to od silnika pamięci zależy, czy wymusi dwa bajty lub nie dla wartości poniżej 255, w takim przypadku zwiększy się o 1 bajt dla każdego wiersza.

Typ char różni się od varchar, ponieważ char zawsze wykorzystuje wymaganą przestrzeń, więc jeśli masz char(10) i varchar(10), ale w każdym z nich przechowujesz tylko "hello", char zużyje wszystkie 10 bajtów, vharchar będzie zawierał 6 bajtów ( 5 dla hello i 1 dla długości), dlatego zmiana rozmiaru kolumn varchar nie przydzieli więcej miejsca do przechowywania, jak gdyby był to typ char.

Prawdziwe pytanie brzmi:dlaczego PHP miałby manipulować rozmiarem varchar? Powinieneś określić rozmiar z jakiegoś powodu, jeśli chcesz pole o zmiennej długości, które może pomieścić dużo tekstu (więcej niż 65 535 bajtów), a także dynamiczne, więc używa tylko minimalnej wymaganej przestrzeni, być może typy TEXT mogą być lepsze w twojej sytuacji ?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Suma PHP MYSQL SUMA, ale pokaż wiersze

  2. php wstawia wiele wartości do oddzielnych wierszy w tabeli mysql

  3. Sortowanie tablicy PHP na kolumny

  4. Ruby - Wystąpił wyjątek:[Mysql2::Error] zamknięte połączenie MySQL

  5. W jaki sposób są przechowywane komunikaty Websphere MQ, aby umożliwić ich trwałość?