У меня небольшое сомнение относительно типа данных MySQL varchar
. Как мы все знаем.
char
- это тип данных фиксированной длины. Итак, размер хранилища значения char равен
максимальный размер для столбца. Но в случае «varchar» это тип данных переменной длины,
таким образом, размер хранилища значения varchar
- это фактическая длина введенных данных, а не максимальный размер для этого столбца. Вот почему varchar
обычно чаще используется, когда необходимо хранить символьно-текстовые данные и сохранять неиспользуемую память для будущего использования.
Недавно я узнал, что ... в случае IBM DB2, если вы используете какой-либо столбец varchar
в середине остальных столбцов таблицы, тогда размер хранения символов в этом конкретном столбце равен оригинальный размер столбца varchar
.
EX: если в таблице 3 столбца, например:
- firstName: char (50)
- lastName: varchar (50)
- emailId: char (50)
Итак, теперь, если вы хотите сохранить этот текст ('Majhi') в столбце "lastName" с типом данных varchar(50)
, тогда потребуется полный объем хранения 50char, а не только 5 символов, что является фактическим размером. текущего текста («Маджхи»).
Вот почему в IBM DB2 включение столбцов любого типа данных varchar в середину остальных столбцов таблицы также работает так же, как и тип данных char
. Итак, оптимизация памяти не происходит.
Итак, я просто хочу знать, работает ли MySQL таким же образом или он не различает, где когда-либо существует varchar
столбец данных и работает соответственно, так как varchar
столбец типа данных должен работать.