varchar(max)
- это функция Microsoft SQL Server.
Объем данных, которые столбец мог хранить в версиях Microsoft SQL Server ранее к версии 2005 был ограничен 8 КБ. Для хранения более 8 КБ вам пришлось бы использовать типы столбцов TEXT
, NTEXT
или BLOB
, эти типы столбцов сохраняли свои данные в виде коллекции из 8K страниц, отдельно от страниц данных таблицы; они поддерживали сохранение до 2 ГБ на строку.
Большим оговоркой к этим типам столбцов было то, что они обычно требовали специальных функций и операторов для доступа и изменения данных (например, READTEXT
, WRITETEXT
и UPDATETEXT
)
В SQL Server 2005 была введена varchar(max)
для унификации данных и запросов, используемых для извлечения и изменения данных в больших столбцах. Данные для столбцов varchar(max)
хранятся в строках со страницами данных таблицы.
Поскольку данные в столбце MAX заполняют страницу данных 8 КБ, выделяется страница переполнения, а предыдущая страница указывает на нее, образуя связанный список. В отличие от TEXT
, NTEXT
и BLOB
, тип столбца varchar(max)
поддерживает все семантику запроса как другие типы столбцов.
Таким образом, varchar(MAX)
действительно означает varchar(AS_MUCH_AS_I_WANT_TO_STUFF_IN_HERE_JUST_KEEP_GROWING)
, а не varchar(MAX_SIZE_OF_A_COLUMN)
.
Чтобы получить тот же объема хранения в качестве varchar(max)
в MySql, вам все равно придется обращаться к типу столбца BLOB
. В этой статье обсуждается очень эффективный метод эффективного хранения больших объемов данных в MySql.