может тут смогут помочь. Percona 5.7:
Есть табличка с составным индексом "инт-дата". Так вот, если сделать запрос типа инт IN (1,2,3) AND дата > CURDATE(), то составной индекс берётся полностью. Если же данное перечисление является результатом запроса (например, через джойн), то вторая часть не только не берётся, но даже не попадает в index_condition, исключительно attached_condition! Вопрос, кто виноват и как эту сволочь заставить взять полный индекс не используя кучу скалярных подзапросов? Для наглядности проблемы сделал тестовые таблички:
https://pastebin.com/0rzHp0U2
Ну в целом это нормально, но детально нужно говорить только имея перед глазами DDL таблиц и запрос.
Заставлять же СУБД обязательно использовать индекс полностью , а не только префикс, вовсе не обязательно
Тестовые таблички тут не прокатит использовать, нужны ещё и данные такие же
А где индекс у юзера?
Обсуждают сегодня