SELECT
и других запросов
EXPLAIN
(получение информации о SELECT
)SELECT
WHERE
DISTINCT
LEFT JOIN
и RIGHT JOIN
ORDER BY
LIMIT
INSERT
UPDATE
DELETE
Buy this Reference Manual in softcover from Barnes & Noble!
DISTINCT
DISTINCT
преобразовывается к GROUP BY
для всех столбцов, для DISTINCT
в сочетании с ORDER BY
, помимо этого, во многих случаях также требуется временная таблица.
Если LIMIT #
указывается совместно с DISTINCT
, MySQL остановится, как только найдет # уникальных строк.
Если не все столбцы и не во всех таблицах используются, MySQL прекратит сканирование неиспользуемых таблиц, как только найдет первое совпадение.
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
В случае, если, предположим, таблица t1
используется перед t2
(это проверяется при помощи EXPLAIN
), MySQL прекратит чтение в t2
(для каждой отдельной строки из t1
), после того как найдет первую строку в t2
.
Posted by on Tuesday July 30 2002, @7:12am | [Delete] [Edit] |
It would be useful to have a function returning an optimized query. Example:
OPTIMIZE_QUERY select distinct * from abc
would return:
select from abc group by (*)
So, one could enter optimized (faster!) queries.
Add your own comment.