| |
|
|
| | Какой запрос выполнится быстрее?
"SELECT `id` FROM .....
или
"SELECT * FROM | |
| |
|
|
| |
|
|
| |
для: PantiL
(12.12.2006 в 18:39)
| | | а при чём в данном случае скорость?
указывать ли все поля либо только некоторые - это зависит от потребностей,от того,нужны ли вам все поля... и есть такое понятие как "Оптимизация в MySQL", почитайте. | |
| |
|
|
| |
|
|
| |
для: servannin
(12.12.2006 в 18:55)
| | | Если мне не нужны все поля, но мне в лом перечислять нужные, мне проще поставить * и все.
Запрос вернет все записи из таблицы, они будут обрабатываться в цикле, если я ставлю * то ненужные поля просто не будут затронуты, но они же будут извлечены из базы - создаст ли это некий тормоз? | |
| |
|
|
| |
|
|
| |
для: PantiL
(12.12.2006 в 19:04)
| | | некий тормоз - да, создаст.
То есть некоторая потеря в скорости будет, но незначительная. Если хочешь оптимизировать - скорее нужно делать выборки из базы короткие, т.е. использовать директивы типа limit.
Перечисляй названия полей ручками ;)
Т.о. делая выборку которая вернет вместо 1000 записей - 100.000, ты теряешь в скорости гораздо больше, чем выбирая все колонки вместо нужных. | |
| |
|
|
| |
|
|
| |
для: PantiL
(12.12.2006 в 19:04)
| | | Вопрос снят.
Таблица из 65000 строк
в строке 20 полей, varchar 50 символов
В цикле никаких действий не выполнялось, просто прогнал его и все.
Результат на лицо
При выборке со звездочкой * - 1.97892093658 сек.
При выборке только поля id - 0.323259830475 сек | |
| |
|
|
| |
|
|
| |
для: PantiL
(12.12.2006 в 19:18)
| | | . | |
| |
|
|
| |
|
|
| |
для: PantiL
(12.12.2006 в 19:18)
| | | Мне необходимо было выбирать все строки, так что вопрос о limit не стоял. Вопрос был о перечислении полей.
Но после следственного эксперимента, думаю все становится понятным | |
| |
|
|
| |
|
|
| |
для: PantiL
(12.12.2006 в 18:39)
| | | Выбирая только нужные поля можно сделать скрипт быстрее и с меньшим потреблением памяти, но если в таблицу добавляются дополнительные поля возрастает вероятность возникновения ошибки, так как все дополнительные поля нужно будет прописать в SQL-запросе. | |
| |
|
|