Devo cancellare circa 10K righe da una tabella che ha più di 100 milioni di righe in base ad alcuni criteri. Quando eseguo la query, ci vogliono circa 5 minuti. Ho eseguito un piano di spiegazioni (la query delete
è stata convertita in select *
poiché MySQL non supporta explain delete
) e ha rilevato che MySQL utilizza l'indice errato.MySQL, eliminazione e indice suggerimento
La mia domanda è: c'è un modo per dire a MySQL quale indice usare durante l'eliminazione? In caso contrario, che cosa faccio? Selezionare la tabella temporanea quindi eliminare dalla tabella temporanea?
Verificare di disporre di una chiave primaria e di indicizzare la colonna indicata nella clausola WHERE dell'eliminazione. –