MySQL 5.7 Warum verwendet diese SQL nicht index_merge, sondern einen vollständigen Tabellenscan?MySql

MySQL DBMS-Forum
Guest
 MySQL 5.7 Warum verwendet diese SQL nicht index_merge, sondern einen vollständigen Tabellenscan?

Post by Guest »

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;

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post