Базы данных: действительно ли поля “TEXT” менее эффективны, чем “varchar”?

Действительно ли менее эффективно использовать ТЕКСТ, чем varchar в базе данных SQL?

Раз так, почему?

Если не, почему Вы только всегда не использовали бы ТЕКСТ?

Я не нацелен на определенную базу данных здесь, но оракул является, вероятно, самым релевантным, хотя я тестирую на MySQL в настоящее время как часть подтверждения концепции.

9
задан Omar Kooheji 16 October 2008 в 09:06
поделиться

4 ответа

От Microsoft здесь

ntext, текст и типы данных image будут удалены в будущей версии Microsoft SQL Server. Избегайте использования этих типов данных в работе новой разработки и запланируйте изменить приложения, которые в настоящее время используют их. Используйте nvarchar (макс.), varchar (макс.), и varbinary (макс.) вместо этого.

Когда Вы используете varchar(max) по тексту можно использовать его в WHERE пункт, потому что они работают то же своими меньшими дубликатами, varchar,nvarchar and varbinary. Ниже маленький список того, что должно использоваться, как отклонено, что должно было использоваться:

  • Используйте varchar (макс.) вместо текста
  • Используйте nvarchar (макс.) вместо ntext
  • Используйте varbinary (макс.) вместо изображения
4
ответ дан 4 December 2019 в 22:31
поделиться

В документации PostgreSQL говорится:

Подсказка: нет никаких различий в производительности между этими тремя типами кроме увеличенного размера ресурса хранения при использовании дополненного пробелом типа и нескольких дополнительных циклов для проверки длины при хранении в ограниченный длиной столбец. В то время как символ (n) имеет преимущества производительности в некоторых других системах баз данных, он не имеет таких преимуществ в PostgreSQL. В большей части текста ситуаций или символьного варьирования должен использоваться вместо этого.

2
ответ дан 4 December 2019 в 22:31
поделиться

Короткий ответ: Да, они менее эффективны.

Дольше, более замысловатый ответ:

Да, они, вероятно, менее эффективны. Это зависит, на котором DBMS Вы используете и размер Вашей таблицы, и т.д., и т.д. Текстовые поля являются переменной шириной, и как таковой, DBMS должен сделать больше работы при попытке найти записи. То, на какое количество это влияет на Вашу производительность, прямо пропорционально к тому, насколько эффективный Ваш DBMS в целом, сколько данных это хранит о строках таблицы, и оптимизирует ли это таблицы фиксированной длины.

Я знаю, что MySQL работает быстрее со строками таблицы фиксированной длины, но необходимо сказать ему, что таблица может рассматриваться как таблицу фиксированной длины сначала. У меня действительно нет практического опыта с другим DBMS, чтобы смочь связать фактические числа. Но на таблицах с партиями (читает миллион или больше) записей, это может иметь значительное значение. Меньшие таблицы будут иметь мало ни к какому практическому различию все же.

1
ответ дан 4 December 2019 в 22:31
поделиться

Необходимо быть конкретными, о которой базе данных Вы говорите о. Я верю по крайней мере в некоторые базы данных, ТЕКСТ хранится как CLOB, отдельный от самой таблицы (который просто содержит ссылку). Это приводит к таблице, являющейся меньшей (пользой), но дополнительным поиском и вероятно неудачным обращением в кэш при выборке (плохо).

Там, вероятно, индексируют и запрашивают последствия также, но снова это будет зависеть от конкретного RDBMS, который Вы используете.

1
ответ дан 4 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: