выберите * против выбора столбца - PullRequest
115 голосов
/ 05 июля 2010

Если мне просто нужно 2/3 столбца и я запрашиваю SELECT * вместо предоставления этих столбцов в запросе выбора, есть ли снижение производительности в отношении большего / меньшего количества операций ввода-вывода или памяти?

Сетевые издержки могут присутствовать, если я выберу * без необходимости.

Но в операции выбора всегда ли ядро ​​базы данных извлекает атомарный кортеж с диска или только те столбцы, которые были запрошены в операции выбора?

Если он всегда тянет кортеж, то затраты на ввод / вывод одинаковы.

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

Так что, если это так, у selectColumn будет больше памяти, чем у select *

Ответы [ 12 ]

0 голосов
/ 17 июля 2017
select * from table1 INTERSECT  select * from table2

равна

select distinct t1 from table1 where Exists (select t2 from table2 where table1.t1 = t2 )
0 голосов
/ 12 марта 2016

Просто чтобы добавить к обсуждению нюанс, которого я не вижу здесь: если говорить о вводе-выводе, если вы используете базу данных с хранилищем с ориентацией на столбцы , вы можете сделать НАМНОГО меньшеВвод / вывод, если вы запрашиваете только определенные столбцы.При переходе на твердотельные накопители преимущества могут быть немного меньше по сравнению с хранилищами, ориентированными на строки, но есть а) только чтение блоков, содержащих столбцы, которые вас интересуют, б) сжатие, которое, как правило, значительно уменьшает размер данных на диске и, следовательно,объем данных, считываемых с диска.

Если вы не знакомы с хранилищем, ориентированным на столбцы, одна реализация Postgres взята из Citus Data, другая - Greenplum, другая Paraccel, другая (условно говоря) - Amazon Redshift.Для MySQL есть Infobright, ныне почти не существующий InfiniDB.Другие коммерческие предложения включают Vertica от HP, Sybase IQ, Teradata ...

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