Ответы пользователя по тегу Базы данных
  • Производительность индексов в mysql?

    @nelson
    Зависит от распределения значений и запросов.
    Например, если у вас 0 и 1 равномерно распределены по строкам, и в запросе вы также ищете как 0 так и 1 - то индекс особо не нужен.
    Если же у вас 80% нули, и 20% единицы, а в запросах вы проверяете только на =1, то индекс может повысить производительность такого запроса.

    Я бы ориентировался на цифру в 20% - если в столбце есть значения которые встречаются реже чем в 20% строк, и по этим значениям осуществляется поиск, то индекс может его ускорить.

    На вашем месте я бы начал с того, что добавил этот индекс и посмотрел план запроса командой EXPLAIN - если индекс лишний, то оптимизатор mysql его не будет использовать (смотрите столбец key в результате explain).

    Кстати, при выполнении запроса оптимизатор mysql как правило выбирает только один индекс. Смотрит среди всех столбцов, который есть в условии where или order by и выбирает самый селективный (это если упрощенно, без деталей).
    Ответ написан
    3 комментария