поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    5.2.5. Как MySQL оптимизирует 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.

     
    © 1997-2005 PHP Club Team
    Rambler's Top100