В таблице home_user около 50000 строк, а в таблице donate_info 100000 строк, теперь я хочу подсчитать общее количество donate_count каждого home_user, я обнаружил, что
mysql не может использовать индекс в таблице donate_info, даже если я добавлю подсказка заставляет его использовать индекс, я действительно хочу знать, почему mysql не использует мой индекс подсказки
explain
SELECT
COUNT(DISTINCT `hu`.`id`) AS aggregate,
COUNT(`di`.`id`) AS donate_count
FROM
`home_user` AS `hu`
LEFT JOIN
`donate_info` AS `di`
FORCE INDEX (user_id_idx, ut_idx)
ON (
`di`.`user_id` = `hu`.`id`
OR (
`di`.`type` = 'proxy'
and `di`.`user_mobile` = `hu`.`account`
)
)
\G;
Подробнее здесь: https://stackoverflow.com/questions/793 ... table-scan
Mysql 5.7, почему этот sql не использует index_merge, он использует полное сканирование таблицы ⇐ MySql
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение