Wie interpretiere ich die Ausgabe von MySQL EXPLAIN?

Ich möchte den Inhalt der Spalte auswählentext vonentrytable.

EXPLAIN SELECT text
FROM entrytable
WHERE user = 'username' &&
`status` = '1' && (
    `status_spam_user` = 'no_spam'
    || (
        `status_spam_user` = 'neutral' &&
        `status_spam_system` = 'neutral'
    )
)
ORDER BY datum DESC
LIMIT 6430 , 10

Die Tabelle enthält drei Indizes:

index_user (Benutzer)index_datum (Datum)index_status_mit_spam (status, status_spam_user, status_spam_system)

Das EXPLAIN-Ergebnis ist:

id  select_type     table       type    possible_keys                       key         key_len     ref     rows    Extra
1   SIMPLE          entrytable  ref     index_user,index_status_mit_spam    index_user  32          const   7800    Using where; Using filesort
Istpossible_keys die Indizes, die MySQL verwenden möchte, undkeys die Indizes, die MySQL tatsächlich verwendet?Warum ist der Indexindex_status_mit_spam nicht benutzt? In der Abfrage haben die Spalten die gleiche Reihenfolge wie im Index, ...Warum ist der Indexindex_datum nicht verwendet für dieORDER BY?Wie kann ich meine Tabellenindizes oder die Abfrage optimieren? (Die obige Abfrage benötigt bis zu 3 Sekunden mit ungefähr einer Million Einträgen in der Tabelle.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage