Ich versuche, einen Bericht aus der 20+ Minute Laufzeit zu bekommen, und ich habe den Engpass zu diesem Monster einer MySQL-Abfrage, die 5 Joins und 3 Unterabfragen verwendet, um alle Ergebnisse in einem zurückzuverfolgen Datensatz. Mein großer Engpass scheint bisher zu sein: Tritt der Lagerliste auf der Zahlungstabelle bei, entspricht die stock.id einer payment.stock_id und der payment.type ist dieser Typ und der payment.status ist dieser Status. Ich zerlege das langsam in verschiedene Abfragen und lasse Java entscheiden, welche Datensätze zu behalten und wegzuwerfen sind, aber ich frage mich, ob es in mysql einen effizienten Weg gibt, um einige Ergebnismengen zu erhalten, vielleicht als gespeicherte Tabellen und dann abfragen gegen diese? Einige meiner Ergebnissätze werden ziemlich groß sein, einige hunderttausend Einträge in den schlimmsten Fällen.Effiziente mysql-Abfragen
Vielen Dank im Voraus
Hunderttausende Reihen sind sicherlich nicht klein, aber auch nicht so groß. Unabhängig davon möchten Sie möglicherweise die tatsächliche Abfrage veröffentlichen. –
Ich würde vorschlagen, dass Sie die Abfrage abstimmen. Verwenden Sie [Explain] (http://dev.mysql.com/doc/refman/5.0/de/explain.html), um eine erste Übersicht über die Funktionsweise der Abfrage zu erhalten. Sie können die Notwendigkeit für einige Indizes usw. identifizieren. Die Anwendung dieser Filterung in der Anwendung ist auf lange Sicht oft eine schlechte Idee. – aishwarya
Und Tabelle Definitionen ... – Kieveli