Эффективность запроса - PullRequest
       6

Эффективность запроса

0 голосов
/ 16 марта 2012

Насколько эффективен этот запрос.Он выбирает из одной и той же таблицы дважды из подзапроса.

SELECT DISTINCT country, rowCount FROM 
(
    SELECT *, (
        SELECT COUNT(id) FROM tbl WHERE hide != 1 AND country = y.country
    ) AS rowCount FROM tbl y

) AS x
HAVING rowCount >= 1
ORDER BY x.country ASC

Я проиндексировал таблицу там, где это необходимо, и запрос выполняется за "0,000 сек" (говорит HeidiSQL), поэтому он должен быть хорошим, однакоЕсть ли что-нибудь, что улучшило бы структуру запроса?

1 Ответ

3 голосов
/ 16 марта 2012

Похоже, что это можно переписать как один запрос:

SELECT country, COUNT(id) rowCount
FROM tbl
WHERE hide <> 1
GROUP BY country
HAVING rowCount >= 1

Детская площадка: http://sqlfiddle.com/#!2/28978/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...