Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво е въздействието на промяната на дължината на varchar в mysql?

Дължината на колона varchar е фиксирана спрямо дължината, която декларирате, когато създавате таблицата. Дължината може да бъде всяка стойност от 0 до 255 (преди MySQL 5.0.3) и от 0 до 65 535 (в MySQL 5.0.3 и по-нови).

Съхранението на varchar е байтовете данни с добавяне на един или два байта за деклариране на дължината на низа. Ако максималната дължина е 255 или по-малко, ще бъде добавен само 1 байт дължина.

Ако използвате alter table и промените максималната дължина, тогава размерът на съхранение на данни няма да бъде засегнат, ако дефинираната максимална дължина е под 255. Ако увеличавате максималната дължина над 255, тогава зависи от механизма за съхранение дали принуждава два байта или не за стойности под 255, в този случай ще се увеличи с 1 байт за всеки ред.

Типът char е различен от varchar, тъй като char винаги използва необходимото пространство, така че ако сте имали char(10) и varchar(10), но сте съхранили само „hello“ във всеки, char ще използва всичките 10 байта, vharchar ще съдържа 6 байта ( 5 за здравей и 1 за дължината), следователно промяната на размера на колоните varchar няма да разпредели повече място за съхранение, както би било, ако беше тип char.

Истинският въпрос сега е защо бихте искали PHP да манипулира размера на varchar? Трябва да посочите размера по причина, ако искате поле с променлива дължина, което може да съдържа много текст (повече от 65 535 байта), а също и динамично, така че да използва само минималното необходимо пространство, може би типовете TEXT може да са по-добри за вашата ситуация ?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предупреждение:mysql_fetch_array() очаква параметър 1 да бъде ресурс, булев, даден в

  2. PDO изход utf8 вмъкване

  3. Поддръжка на Homebrew, MySQL 8

  4. Променете тип колона от Date на DateTime по време на миграция на ROR

  5. php заявката не се изпълнява?