Werfen Sie einen Blick auf diese sqlfiddle ich gemacht http://sqlfiddle.com/#!9/4b903/2/0. Dies ist die vereinfachte Version meiner Datenbank. Ich habe jetzt eine Million Datensätze in der Geschichte und das Problem ist, dass die Abfrage zu langsam scheint. Manchmal dauert es eine Minute, um das Ergebnis zu erhalten. Ich bin nicht wirklich gut in diesem SQL-Zeug. Ich denke da sind einige Spalten, die ich indizieren muss, aber ich bin mir nicht sicher, was das sind.Brauchen Sie Hilfe bei der Verbesserung der Leistung der SQL-Abfrage
Update:
ich versuchte SQL
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
1 | PRIMARY | t1 | range | created_reason,created_reason_2 | created_reason_2 | 6 | NULL | 91136 | Using where; Using temporary; Using filesort
2 | DEPENDENT SUBQUERY | t2 | ref | history_table1_id_foreign,table1_id,table1_id_2 | table1_id_2 | 4 | t1.table1_id | 11 | Using where; Using index; Using filesort
Indizes erstellen. https://dev.mysql.com/doc/refman/5.6/en/optimization-indexes.html – hjpotter92
Übrigens Geld ist in der Regel DECIMAL, nicht FLOAT – Strawberry
Außerdem verwenden Sie eine korrelierte Unterabfrage. Ein unmarkierter ist fast immer schneller. – Strawberry