Как стать автором
Обновить

Основы индексирования и возможности EXPLAIN в MySQL

Время на прочтение 19 мин
Количество просмотров 31K
Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Разработка веб-сайтов *PHP *MySQL *
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 3

Комментарии 3

«когда мы смотрим EXPLANE в MySQL, у нас нет EXPLANE ANALYSE. Точнее, оно появилось совсем недавно в версии 10.1 Maria, которая еще beta, и, естественно, пока не используется.»
1. EXPLAIN
2. не EXPLAIN ANALYZE, а просто ANALYZE
3. MariaDB 10.1 давно stable (с прошлого года), ну и конечно же используется.
Спасибо, просмотрели.
если нам нужно в алфавитном указателе найти какие-то имена. «Руками» мы будем искать следующим образом: посмотрим первую фамилию, найдем нужные имена, пролистнем до следующей фамилии. Это не ограничение b-tree дерева, это ограничение реализации b-tree дерева непосредственно в MySQL. Другие базы так умеют делать — использовать не первую колонку, например, в случае WHERE B=3 индекс в MySQL использоваться, вообще, не будет.

Честно говоря, всегда думал, что это именно ограничение B-деревьев (а точнее особенности их построения по группе полей).
Не могли бы вы привести пример в каким именно СУБД поддерживается возможность эффективного (не full index scan, а index seek) использования индексов в подобных ситуациях? И как это работает?

Postgres 9.5 так не умеет

SQl Server 2016 тоже (прошу прощение за русскую SSMS)

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.