Любые ошибки преобразования поля MySQL TEXT в MEDIUMTEXT?

Я понимаю ограничения размера/хранения полей MySQL TEXT и MEDIUMTEXT, но я просто хотел сделать абсолютно уверенным (до того, как я подпишусь на изменение), что я не смотрю на какие-либо побочные эффекты от преобразования поля с существующими данные от TEXT до MEDIUMTEXT.

Мои проблемы - это в основном производительность, целостность и дисковое хранилище.

Спасибо

Ответы

Ответ 1

Что касается производительности, целостности и дискового хранилища на уровне базы данных, я бы не стал беспокоиться об этом.

  • Данные переменной длины, такие как varchar, text и blob, хранятся без заполнения.
  • Я не знаю никаких проблем с честностью. Все типы данных обрабатываются атомарно ядром базы данных.
  • Конечно, если у вас действительно длинные текстовые данные, при извлечении этих данных потребуется больше памяти и больше времени для дискового ввода-вывода и пропускной способности сети. Но если эти данные вам нужно поместить в базу данных, то это то, что вам нужно сделать.

Я могу думать об одном возможном воздействии:

Некоторые библиотеки клиентского интерфейса предварительно выделяют буфер для хранения результатов, и они выделяют достаточно памяти для максимально возможного значения. Клиент не знает длину данных, прежде чем он извлекает данные, поэтому он должен выделить достаточно места, предполагая, что данные могут быть такими, какими поддерживает тип данных.

Таким образом, библиотека будет выделять 16 МБ на каждый mediumtext text в то время как библиотека будет выделять 64 КБ для text. Это то, на что нужно обратить внимание, если у вас низкий предел памяти на уровне клиента. Например, PHP имеет параметр конфигурации memory_limit для сценариев, и буфер, выделенный для наборов результатов данных, будет учитываться в этом.