2016-04-14 2 views
-1

Im Folgenden habe ich eine select select-Abfrage fünfmal (nacheinander) ausgeführt und für jede Anfrage benötigt die Datenbank unterschiedliche Zeit, um die Antwort zurückzugeben. Wie kalt ist das möglich?Für eine selbe SQL-Abfrage benötigt die Datenbank unterschiedliche Zeit, um die Antwort zurückzugeben

  • Anfrage an die Datenbank - dauerte 10 ms.
  • Anfrage an Datenbank - dauerte 6ms.
  • Anfrage an Datenbank - dauerte 12 ms
  • Anfrage an Datenbank - took6 ms
  • Anfrage an Datenbank - nahm 9 ms

Dank Shashidhar

+0

Der Computer und/oder MySQL-Server hatte andere Ebene anderer Dinge mit Ihnen zu tun versucht, um die Abfrage auszuführen. – Shadow

Antwort

0

Lassen Sie uns die Daten sehen. Die benötigte Mindestzeit betrug 50% der maximal benötigten Zeit. Im Allgemeinen, wenn das Minimum 80% des Maximums beträgt, wird die benötigte Zeit als ziemlich stabil angesehen. Wenn es 40% oder mehr, aber weniger als 80% ist, dann gibt es eine moderate Varianz in der benötigten Zeit. Wenn es unter 40% liegt, kann es als flüchtig angesehen werden. Ihre benötigte Zeit hat eine Abweichung, ist aber noch nicht volatil.

Die Ursache dieser Abweichung hängt von den Aufgaben ab, die der Server beim Ausführen der Abfrage ausführen muss. Wenn viele Anfragen an den Datenbankserver gestellt werden, erhöht sich aufgrund der erhöhten Parallelität die benötigte Zeit. Wenn Daten geändert werden (viele Einfügungen und Löschungen erfolgen in einem kurzen Zeitraum), kann die Geschwindigkeit der Auswahl abhängig von der Anzahl der Zeilen in der Tabelle und der Anzahl der Zeilen, die mit den Where-Kriterien übereinstimmen, erhöht oder verringert werden. Wenn die Tabellenstruktur variiert wird (z. B. wird häufig ein Index hinzugefügt oder entfernt), kann sich dies auch auf die Leistung Ihrer Operation auswirken. Last but not least, wenn Sie nicht wirklich überprüft haben, dass die Ausführung der Abfrage jedes Mal gleich ist, dann gibt es Chancen, dass es Unterschiede gab, besonders wenn die Abfrage dynamisch generiert wurde.

Also, die Dinge, die Sie beobachtet haben, sind nicht seltsam, aber ganze Minuten benötigt für eine Abfrage ausgeführt werden scheint eine Menge Zeit zu sein und vielleicht sollten Sie darüber nachdenken, Dinge zu optimieren.

+0

Ich habe eine Nachfolgefrage hier. Wenn sich die Antwortzeit jedes Mal für dieselbe Datengruppe ändert, was ist dann der beste Weg, um die Abfrageleistung zu überprüfen? – Sashi

+0

@Sashi, zuerst müssen Sie zählen, wie oft Sie die Messung durchgeführt haben (um zu sehen, wie solide Ihr Muster ist) und den Durchschnitt berechnen, um zu sehen, wie viel Zeit Sie von der nächsten Ausführung erwarten können. Betrachten Sie dann die Anzahl der Datensätze, die Komplexität der Beziehung, mit der Sie arbeiten (wie viele Tabellen und wie groß sie in Datensatznummer und Spaltennummer sind) und die Komplexität Ihres Filters. Sehen Sie sich die Attribute der Computer an, mit denen Sie arbeiten, und vergleichen Sie die Leistung mit anderen Leistungen, die Sie gesehen haben. –

+0

Danke Lajos. Es war hilfreich. – Sashi

Verwandte Themen