, зачем указывать длину для разных типов символов

Ссылаясь на документацию Postgres на Типов символов , я неясен в точке указания длины для разных (Varchar).

Предположение:

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

. Это упоминается:

Требование хранения для короткой строки (до 126 байтов) 1 байт плюс фактическая строка, которая включает в себя пространственную прокладку в случае характера. Более длинные строки имеют 4 байта наверху вместо 1. Длинные струны сжимаются системой автоматически, поэтому Физическое требование на диске может быть меньше. Очень длинные ценности также хранится в фоновых таблицах, чтобы они не мешали быстрее Доступ к более короткому значению столбцов. В любом случае самый длинный Строка символов, которая может быть сохранена, составляет около 1 ГБ. (Максимальное значение это будет разрешено для n в типе данных Декларация меньше, чем который. Было бы не полезно изменить это, потому что с Multibyte Кодировки персонажей Количество символов и байтов может быть довольно разные.

Это говорит о размере строки, а не в размере поля, (то есть звучит, как он всегда будет сжать большую строку в большом поле Varchar, но не небольшая строка в большом варречке?)

I Задайте этот вопрос, так как было бы намного проще (и лениво) указывать гораздо большего размера, поэтому вам никогда не нужно беспокоиться о том, чтобы иметь слишком большую строку. Например, если я указываю VARCHAR (50) для имени место, я получу места, у которых есть больше символов (например, llanfairpwllgwyngyllgogerychwyrndrobwllllltysiliagogogogogog), но если я уточню varchar (100) или varchar (500), я меньше, чтобы получить эту проблему Отказ

Так что вы получите удар производительности между Varchar (500) и (произвольно) Varchar (5000000) или текстом (), если ваша самая большая строка была скажем, 400 символов длиной?

также из-за того, что у кого-то есть ответ на Это и знает ответ на это для других баз данных, пожалуйста, добавьте это тоже.

Я гуглал, но не нашел достаточно технического объяснения.

14
задан Mr Shoubs 6 September 2011 в 13:01
поделиться