MySQL Query - выбор полей

81
7

Если у меня есть таблица mySQL с 10 полями, и мне нужно только получить значения некоторых полей, целесообразно ли использовать


SELECT field1, field2, field3 FROM...

а не


SELECT * FROM...

Я имею в виду, что это облегчает поиск / script выполнение быстрее, если Im использует [SELECT field1, field2, field3....]

спросил(а) 2013-05-01T11:27:00+04:00 7 лет, 5 месяцев назад
1
Решение
122

да, вы должны запрашивать только те поля, которые вам нужны, так как не требуемые поля будут занимать сетевой ресурс (транспортировка с сервера db на сервер backend) и память.

ответил(а) 2013-05-01T11:30:00+04:00 7 лет, 5 месяцев назад
41

Если вы запрашиваете a table с 6800 записями, имеющими 23 Columns


С * для возврата записей потребовалось Среднее значение 0.0009 Sec


И тот же запрос с 5 Columns принял средний 0.0005 Sec


Протестировано на Dual Core Machine 2GB RAM, Windows 7 и Phpmyadmin


Заключение


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

ответил(а) 2013-05-01T11:52:00+04:00 7 лет, 5 месяцев назад
41

Да, вы всегда должны использовать форму SELECT field1, field2, field3... в соответствии с некоторыми.


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

С точки зрения оптимизации вы должны выбрать только те поля, которые вы планируете использовать. Это может сделать отладку более ясной, если вы точно знаете, какие данные извлекаются.

ответил(а) 2013-05-01T11:46:00+04:00 7 лет, 5 месяцев назад
41

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


Если у вас есть таблица с 20 или около того полями и вы хотите 18 из них, то это может быть проще/не просто сделать *, чтобы получить их все.


ИЗМЕНИТЬ


Дополнительную информацию можно найти в этом вопросе.

ответил(а) 2013-05-01T11:30:00+04:00 7 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема