Общие > Базы данных
Что быстрее...
Alexandr:
Что быстрее:
SELECT count(id) as id FROM firm WHERE firm_type=1;
SELECT count(id) as id FROM firm WHERE firm_type=2;
SELECT count(id) as id FROM firm WHERE firm_type=3;
Или
SELECT firm_type, count(*) as w FROM firm GROUP BY firm_type
если
firm_type индекс
sonarv:
По моему разумению второй вариант должен быть быстрее...
Тк селекту не надо генерить 3!!!! различные таблицы.
Но тут есть подводный камень.....сколько времени уйдет на сортировку одной большой таблицы. Я думаю что это вообще врядли кто знает. Для этого надо знать по какому методу GROUP BY сортирует....Так что смотри сам опытным путем.
AlieN:
ИМХО Второй запрос будет быстрее
ThE0ReTiC:
Второй конечно.
Alexandr:
Однако смотрим EXPLAIN.......
--- Код: ---table type possible_keys key key_len ref rows Extra
1) firm ref firm_type firm_type 1 const 69 where used; Using index
2) firm ref firm_type firm_type 1 const 42 where used; Using index
3) firm ref firm_type firm_type 1 const 12 where used; Using index
ИЛИ
4) firm index firm_type 1 124 Using index
--- Конец кода ---
Следовательно, первые 3 запроса просматривают на 1 строку меньше, чем 4-й
Навигация
Перейти к полной версии