Die Tabelle „home_user“ hat ungefähr 50.000 Zeilen und die Tabelle „donate_info“ hat 100.000 Zeilen. Jetzt möchte ich die Gesamtanzahl der Spenden jedes home_users berechnen. Ich habe festgestellt, dass MySQL den Index in der Tabelle „donate_info“ nicht verwenden kann, selbst wenn ich etwas hinzufüge Hinweis erzwingt die Verwendung des Index. Ich möchte wirklich wissen, warum MySQL meinen Hinweisindex nicht verwendet
Code: Select all
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;