2012-03-01 3 views
0

Имеет ли тип данных влияние на скорость запросов. Насколько важно использовать правильные типы, такие как smallint instedof int или даже tinyint в таблицах с небольшим количеством строк.Типы данных и скорость запросов

ли запрос

select * from table 

будет быстрее, чем TINYINT для междунар ??

+1

С небольшим количеством строк это, вероятно, не составит никакого значения, когда вы достигнете миллионов, разница в размере данных может повлиять на производительность. – Yaniro

ответ

0

Вы не можете отличить два типа данных: TINYINT и INT со скоростью и оптимизацией, потому что это все номера. Они отличаются только от их SIZE.

+1

Да, я знаю, что у них разный размер, но размер имеет значение? –

0

Насколько я знаю всех результатов запроса в PostgreSQL посылаются от сервера к клиенту в тексте формы (например, если у вас есть INTEGER столбца, значение из этого столбца превратил в тексте перед отправкой это вам). Существует возможность отправки двоичной формы, но она официально обескуражена и не настолько хорошо документирована (в PostgreSQL API). Я уверен, что большинство клиентов, построенных на libpq/so/dll (и друзьях), используют текстовую форму.

Сказав, что на самом деле это имеет значение только на стороне сервера (для PostgreSQL) для эффективности хранения и запросов. К сожалению, я не разработчик PostgreSQL, поэтому я не могу дать вам больше информации о стороне сервера. Я довольно много программировал на стороне клиента (используя PostgreSQL и MySQL API).

MySQL API отправляет все в двоичном формате, поэтому на стороне клиента может быть немного больше.

И как всегда .... размер имеет значение :)

2

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

Смежные вопросы