Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Abfrage bei großen Datenmengen schmerzhaft langsam

Tabelle optimieren

Um eine Basislinie festzulegen, würde ich zuerst empfehlen, einen TABELLE OPTIMIEREN Befehl auf beiden Tischen. Bitte beachten Sie, dass dies einige Zeit dauern kann. Aus den Dokumenten :

Indizierung

Wenn die Speicherplatz- und Indexverwaltung keine Rolle spielt, können Sie versuchen, einen zusammengesetzter Index ein

product_categories.cat4, product_categories.cat3, product_categories.cat2, product_categories.cat1

Dies ist empfehlenswert, wenn Sie oft eine Teilmenge dieser Spalten ganz links verwenden bei Ihren Anfragen. Der Abfrageplan gibt an, dass er cat1 verwenden kann Index von product_categories . Dies beinhaltet höchstwahrscheinlich nur den cat1 Säule. Durch Hinzufügen aller vier Kategoriespalten zu einem Index kann effizienter nach der gewünschten Zeile gesucht werden. Aus den Dokumenten :

Struktur

Außerdem hat Ihre Tabelle 90 Spalten Sie sollten sich auch bewusst sein, dass Eine breitere Tabelle kann zu einer langsameren Abfrageleistung führen . Vielleicht möchten Sie über vertikales Partitionieren Ihre Tabelle in mehrere Tabellen: