utros
07.04.2012 19:35 pedobook
А тут есть умные люди, умеющие готовить mysql? Нужно объяснить тупому мне, что такое cardinality для индекса и сказать как мускуль с этими вашими индексами работает:
например, есть у меня на таблице два индекса: по полю 1 и по полю 2. Я гоню селект с условием по обоим поялям. Мускуль подхватит только один индекс или пройдётся по обоим?
И обратная ситуация: есть индекс по двум полям, а выбираю по одному. Индекс подхватится? И на сколько медленнее будет выборка если таки-подхватится?
Recommended by:
@rapture: для общего развития
не скажу про cardinality, но посмотреть какой индекс будет использоваться можно через EXPLAIN перед запросом. а вообще — один индекс используется на запрос
То есть он не умеет bitmap/hash-join по нескольким индексам?
Ок. Спасибо.
насколько я понимаю, каждый join приводит к использованию отдельного индекса
hash-join (если я правильно помню название) — это join по нескольким индексам одной таблицы.
А это логично, да.
Ещё глупый вопрос:
я делаю
SELECT ... FROM tablename WHERE field1='blah' ORDER BY field2;
Тут достаточно будет сделать индекс по field1 и
ALTER TABLE tablename ORDER BY field2;
чтобы поиметь быструю выборку или я что-то проебал?
Ну ок, спасибо.