Ich habe eine MySQL-Tabelle mit Millionen von Datensätzen, und jeden Tag werden Hunderte von Datensätzen in die Tabelle eingefügt.So optimieren Sie die häufigste MySQL SELECT-Abfrage
Im Front-End, zeigt es die letzten 100 Datensätze die Abfrage mit:
SELECT * FROM
table_a
ORDER BY creation_time DESC
LIMIT 100
Jedes Mal, wenn ein Benutzer die Seite besucht, wird es durch den großen Tisch scannen und die Sortierung durchzuführen. Das Verfahren sieht sehr ressourcenintensiv aus.
Ich finde, dass es eine VIEW
in MySQL gibt. Kann ich die Leistung optimieren, wenn ich eine Ansicht zum Speichern der Ergebnisse erstelle? Ist die view
mit der ursprünglichen Tabelle synchronisiert? Oder andere Mittel, um die Abfrageleistung zu steigern?
Danke!
Ansichten der Regel die Dinge verlangsamen. Konzentrieren Sie sich auf die zu startenden Indizes. Und überprüfen Sie, ob Sie alle diese Zeilen benötigen. – Drew
In Bezug auf @ Drew's Punkt: Sie können einen Index für 'creation_time' hinzufügen. 'ALTER TABLE' table_a' HINZUFÜGEN INDEX 'idx_table_a_creation_time' (' creation_time') ' – 1000111
Vielen Dank. Wie kann man am besten mit einer solchen Situation umgehen? Die Tabelle wächst von Tag zu Tag, aber immer werden die neuesten Datensätze ausgewählt. – Yota