* В запросе mysql медленнее, чем выбор определенных столбцов? - PullRequest
1 голос
/ 09 апреля 2011

Я пытаюсь выяснить, если:

SELECT * FROM tbl_mine

медленнее, чем:

SELECT this_column,that_column FROM tbl_mine

в моих запросах MySQL. Может ли кто-нибудь говорить об этом на основе опыта?

Ответы [ 3 ]

5 голосов
/ 09 апреля 2011

Это медленнее, потому что база данных должна отправлять больше данных клиенту, но если данные, которые вы выбираете, не являются существенными, эта задержка (для простого запроса, как вы предоставили) должна быть незначительной.Другими словами, если у вас есть таблица с тремя полями, SELECT field1, field2, field3 FROM table совпадает с SELECT * FROM table.

3 голосов
/ 09 апреля 2011

Игнорирование каких-либо специфических оптимизаций на основе индекса (которые могут очень сильно изменить ситуацию, но это более широкое обсуждение), сам запрос не займет никакого нетривиального дополнительного времени.

Вы можете испытатьнебольшое замедление с увеличением объема данных, отправляемых через буферы и еще много чего.Вы, возможно, наверняка испытаете даже существенное замедление, если затем отправляете эти данные (особенно если их много) по сетевому соединению или между приложениями.

1 голос
/ 09 апреля 2011

Если у вас есть таблица, скажем, с 20 полями, и вы хотите только 5, скажем, из них, хорошей практикой будет вызывать поля, а не выбирать все.

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

...