У меня есть небольшое сомнение относительно типа данных MySQL varchar
. Как мы все знаем.
char
— это тип данных фиксированной длины. Таким образом, размер хранения значения char равен максимальному размеру столбца. Но в случае «varchar» это тип данных переменной длины, поэтому размер хранилища значения varchar
— это фактическая длина введенных данных, а не максимальный размер для этого столбца. Вот почему varchar
обычно чаще используется, когда необходимо хранить данные типа символов/текста и сохранять неиспользуемую память для будущего использования.
Недавно я узнал, что... в случае IBM DB2, если вы используете любой столбец varchar
в середине остальных столбцов таблицы, тогда размер хранения символов в этом конкретном столбце равен исходному размеру varchar
столбец.
ПРИМЕР: если в таблице есть 3 таких столбца:
- имя: char(50)
- фамилия : varchar(50)
- адрес электронной почты: символ (50)
Итак, теперь, если вы хотите сохранить этот текст («Маджхи») в столбце «lastName», который имеет тип данных varchar(50)
, тогда он займет полный размер хранилища 50 символов, а не только 5 символов, что является фактическим размером фактического текста ( «Маджи»).
Вот почему в IBM DB2 включение любого столбца типа данных varchar в середину остальных столбцов таблицы также работает так же, как работает char
тип данных. Таким образом, оптимизации памяти не происходит.
Итак, я просто хочу знать, работает ли наш MySQL таким же образом, или он не различает, где когда-либо существует столбец varchar
dataype и работает соответственно, поскольку должен работать столбец varchar
datatype.