Ich weiß, das ist eine sehr breite Frage, aber hier ist meine Situation: 1) Ich habe ein Hibernate-fähiges Java-Programm, das Protokolle alle 15 Minuten in MySQL (InnoDB) Dumps. Die Log-Daten selbst sind humogen (100k-500k Zeilen Log).MySQL Query Optimierung --- Ihre Gedanken
2) Momentan werden im Frontend zwei Dinge angeboten, die auf Basis der Zeitstempel suchen und berichten.
3) Die Abfrage dauert eine looong Zeit (10-15 Minuten) führt zurück zu bekommen, obwohl ich Indizes haben gestellt und hat ERKLÄREN, wo die Zeit seiner Einnahme zu studieren usw.
4) Auf dem MySQL-Server Level, ich habe den Query Cache unter anderem erhöht.
Ich bin auf den Knien, um dieses Problem zu lösen. Ich muss wissen, gibt es etwas, was ich tun kann, um die Abfragegeschwindigkeit zu erhöhen.
Vielen Dank im Voraus. Bo
BTW Ich verwende nicht Hibernate im Frontend, um die Ergebnisse anzuzeigen. Es handelt sich um SQL-Abfragen, die in PERL eingebettet sind und das Frontend behandeln. – BoCode
die großen Protokolldaten sollten als Datei statt Datenbank gespeichert werden? – ajreal
Meinen Sie, dass Sie alle 15 Minuten 100k-500k Zeilen zu einem einzelnen Tisch hinzufügen? Fügen Sie die Tabellendefinition oder -definitionen, die von Ihnen verwendete Abfrage und möglicherweise Ihre EXPLAIN-Ausgabe hinzu. Sollte die Chancen verbessern, nützliche Antworten zu erhalten. Kann nützlich sein, um die Perl zu sehen, die auch die Ergebnisse verarbeitet. –