У меня есть таблицы со столбцами
blog_detail
- id INT PK, blog_id INT FK, language INT, title VARCHAR(255).
blog
- id INT PK, author_id INT FK, created DATETIME
У меня есть индексы в таблице blog_detail
blog_id_language
- blog_id, язык
blog_id
- blog_id
blog_id_title
- blog_id, заголовок
Запрос:
SELECT *
FROM `blog`
LEFT JOIN `blog_detail` ON `blog`.`id` = `blog_detail`.`blog_id`
WHERE (`blog`.`is_active` = 1)
AND (( `blog`.`id` LIKE "%fulltextsearch%")
OR (`blog_detail`.`title` LIKE "%fulltextsearch%")
)
MySQL выбирает индекс blog_id_language
, который использует столбец, который вообще не используется.Почему MySQL не выбирает только blog_id
без бесполезного языка столбцов или blog_id_title
, то есть используют оба используемых столбца?