DISTINCT и Индексы

Redjik

Джедай-мастер
Как обрабатывается запрос DISTINCT к индексированному столбцу?

перебор всех записей?

если да, как выявить из индексированного столбца только уникальные значения без перебора всех?

если никак буду делать еще одну таблицу тогда только с уникальными значениями и по id привязывать к тому столбцу
 

Redjik

Джедай-мастер
О спасбо огроменное, то что надо, пробовал найти на нем, но там сам черт ногу сломит доку ковырять...
 

Redjik

Джедай-мастер
EXPLAIN SELECT `vendor` FROM `yi_items` GROUP BY `vendor`

показало, что запрос пробегает все ряды (если их будет под мильон, то запрос поди будет не очень быстрым), дело исправляется LIMIT,но для этого нужно знать сколько уникальных записей у нас есть...
 

Gas

может по одной?
сколько записей в таблице? если пара десятков то mysql может и фулскан выбрать.
точно стоит индекс на vendor?

у меня даже на 5.0.x такой запрос индекс использует.
 

Redjik

Джедай-мастер
Ура, на 1700 записей 10 рядов проверки, эксплейн показал Using index for group-by !!!
Спасибо огромное!!!
 

iceman

говнокодер
выборку можно ограничивать датами (between), это будет быстрее, если конечно - сущность позволяет... обычно да
 
Сверху