Производительность Postgres: статическая длина строки? - PullRequest
5 голосов
/ 25 марта 2011

Mysql ведет себя особым (предположительно более производительным) образом , когда в таблице нет столбцов переменной ширины

Имеет ли Postgres похожее поведение? Имеет ли существенное значение добавление одного столбца переменной ширины в таблицу?

Ответы [ 3 ]

7 голосов
/ 25 марта 2011

Общий совет, данный в postgres docs (прочитайте совет) , заключается в том, что поля переменной длины часто работают лучше, так как это приводит к меньшему количеству данных, поэтому таблица помещается в меньшие дисковые блоки и занимает меньше местакэш-память.Современные процессоры намного быстрее, чем память и диски, поэтому затраты на поля переменной длины стоят уменьшения на ввод-вывод.

Обратите внимание, что postgresql хранит значения NULL в растровом изображении в начале строки и пропускает поле, если значение равно NULL.Поэтому любой обнуляемый столбец имеет переменную ширину.То, как postgresql хранит эти данные ( Макет страницы базы данных ), предполагает, что получение последнего столбца будет медленнее, чем первого столбца.Но это, вероятно, окажет заметное влияние только в том случае, если у вас много столбцов, и данные для начала были в основном в кеше.В противном случае диск io будет доминирующим фактором.

0 голосов
/ 25 марта 2011

предположительно более производительный

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

Если вам нужно знать, достаточно ли быстрая ваша рабочая нагрузка в СУБД X с вашими данными, не смотрите ни на что, кроме цифр, полученных изреалистичный эталон в вашей среде с оборудованием, соответствующим производственному уровню.

Любой другой подход можно заменить, глядя на хороший хрустальный шар

0 голосов
/ 25 марта 2011

Из того, что я знаю, нет, это не так

Проверьте эту ссылку для общего разговора о типах данных. Мой вывод из этого прочтения заключается в том, какое особое поведение mysql демонстрирует, postgresql не делает, что для меня хорошо.http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...