|
|
|
| Сделал один индекс по 2 полям: id_user и id_user_sponsor
Запросы бывают трех типов:
... WHERE id_user = 20 AND id_user_sponsor = 35
... WHERE id_user = 20
... WHERE id_user_sponsor = 35
|
Вопрос: Одного индекса по двум полям достаточно для всех трех видов запросов? Или для запросов с одним условием нжно делать одтельные индексы? | |
|
|
|
|
|
|
|
для: tAleks
(11.07.2008 в 16:23)
| | первый, ясное дело, будет применять индекс.
второй, возможно, тоже...
третий - точно не будет.
Дело тут в порядке полей в индексе.
А вообще для ответа на такого рода вопросы применяют оператор EXPLAIN , который строит план запроса. В нем написано, какие индексы будут применены. | |
|
|
|
|
|
|
|
для: Trianon
(11.07.2008 в 16:34)
| | а можно пример с EPLAINT'ом?
Че-то нигде не могу найти описание этого оператора, ни в Самоучителе MySQL 5 (местного производства), ни в справочинке MySQL. | |
|
|
|
|
|
|
|
|
для: Trianon
(11.07.2008 в 16:34)
| | А если будет два разных индекса, отдельных, и такой запрос:
... WHERE id_user = 20 AND id_user_sponsor = 35
|
Нормально будет? | |
|
|
|
|
|
|
|
для: tAleks
(11.07.2008 в 18:21)
| | а вот тогда один из них окажется лишним.
А для мгновенного отклика потребуется индекс на обоих полях. | |
|
|
|