Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Есть ли смысл выбирать только необходимые поля? или же все (*)
 
 автор: PantiL   (12.12.2006 в 18:39)   письмо автору
 
 

Какой запрос выполнится быстрее?

"SELECT `id` FROM .....

или

"SELECT * FROM

   
 
 автор: servannin   (12.12.2006 в 18:55)   письмо автору
 
   для: PantiL   (12.12.2006 в 18:39)
 

а при чём в данном случае скорость?
указывать ли все поля либо только некоторые - это зависит от потребностей,от того,нужны ли вам все поля... и есть такое понятие как "Оптимизация в MySQL", почитайте.

   
 
 автор: PantiL   (12.12.2006 в 19:04)   письмо автору
 
   для: servannin   (12.12.2006 в 18:55)
 

Если мне не нужны все поля, но мне в лом перечислять нужные, мне проще поставить * и все.

Запрос вернет все записи из таблицы, они будут обрабатываться в цикле, если я ставлю * то ненужные поля просто не будут затронуты, но они же будут извлечены из базы - создаст ли это некий тормоз?

   
 
 автор: servannin   (12.12.2006 в 19:15)   письмо автору
 
   для: PantiL   (12.12.2006 в 19:04)
 

некий тормоз - да, создаст.
То есть некоторая потеря в скорости будет, но незначительная. Если хочешь оптимизировать - скорее нужно делать выборки из базы короткие, т.е. использовать директивы типа limit.
Перечисляй названия полей ручками ;)
Т.о. делая выборку которая вернет вместо 1000 записей - 100.000, ты теряешь в скорости гораздо больше, чем выбирая все колонки вместо нужных.

   
 
 автор: PantiL   (12.12.2006 в 19:18)   письмо автору
 
   для: PantiL   (12.12.2006 в 19:04)
 

Вопрос снят.
Таблица из 65000 строк
в строке 20 полей, varchar 50 символов
В цикле никаких действий не выполнялось, просто прогнал его и все.

Результат на лицо
При выборке со звездочкой * - 1.97892093658 сек.
При выборке только поля id - 0.323259830475 сек

   
 
 автор: servannin   (12.12.2006 в 19:20)   письмо автору
 
   для: PantiL   (12.12.2006 в 19:18)
 

.

   
 
 автор: PantiL   (12.12.2006 в 19:20)   письмо автору
 
   для: PantiL   (12.12.2006 в 19:18)
 

Мне необходимо было выбирать все строки, так что вопрос о limit не стоял. Вопрос был о перечислении полей.
Но после следственного эксперимента, думаю все становится понятным

   
 
 автор: cheops   (12.12.2006 в 22:19)   письмо автору
 
   для: PantiL   (12.12.2006 в 18:39)
 

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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования