führte ich eine Suche auf MySQL auf der folgenden Tabelle, die Spalten und Indizes hat folgende:Wie kann die Suchzeit in MySQL DB verringert werden, wenn nach einem Datumsbereich gesucht wird?
Die Anfrage war die folgende, bitte die Anzahl der Tage als 6 bemerken:
SELECT * FROM data WHERE TEMP<"3000" AND TEMP>"2600" AND Date_Time >"2016-05-05 %" and Date_Time <"2016-05-11 %";
Diese Abfrage liefert die Ergebnisse in 0.59s
Wenn ich die Anzahl der Tage, um mehr als das, wie in dieser Abfrage dann werde ich in viel mehr Zeit 2.15s
SELECT * FROM data WHERE TEMP<"3000" AND TEMP>"2600" AND Date_Time >"2016-05-04 %" and Date_Time <"2016-05-11 %";
Wie behebe ich dieses Problem bekommt das Ergebnis ändern? Ich finde es absurd, dass nur ein weiterer Tag die Geschwindigkeit so stark beeinflusst! Ich bin bestrebt, in einem größeren Zeitraum zu suchen, also muss ich den Grund dafür etwas wissen.
Interessante Frage. Versuchen Sie einen zusammengesetzten Index (TEMP, Date_Time) hinzuzufügen. Irgendwelche Geschwindigkeitsänderungen? – arhey
Verwenden Sie die Klausel zwischen. Hier können Sie sehen, dass es tatsächlich die Leistung verbessert: http://stackoverflow.com/questions/15425230/is-it-a-good-idea-to-index-datetime-field-in-mysql –
Können Sie erklären Ergebnisse für hinzufügen beide Abfragen? – arhey