Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Leistungsbegrenzung

Das Problem mit einer Tabelle mit 1 Million Datensätzen ist nicht das AND id > 34000 LIMIT 10 oder LIMIT 34000, 10 das reicht bis zur Struktur und dem Rest der Abfrage. D.h. Sie brauchen Index, PK, FK, um die Abfrage zu beschleunigen, außerdem wird ein Order by sie wahrscheinlich verlangsamen, machen Sie die Suche like '%text%' es wird Ihre Abfrage LANGSAM machen. Es liegt auch an der Engine der Tabelle

Erwarten Sie also nicht, dass die Änderung von Limit 10 einen großen Unterschied machen wird. Es gibt ein paar Tools, die Ihnen helfen, eine „bessere“ Abfrage zu bestimmen, aber nicht alle Abfragen funktionieren gleich, also erwarten Sie nicht die „beste Lösung“, weil es sie nicht gibt.

Sie können Show create table verwenden oder Describe select ...... oder explain um zu sehen, was vor sich geht, oder verwenden Sie den Befehl benchmark um die ungefähre Zeit einer Funktion zu sehen, die Sie anwenden, um sie zu verbessern

BEARBEITEN:

Einige Tools für MySQLIch empfehle Ihnen, einen Blick auf dieses Programm zu werfen, das Ihnen bei diesem Teil der Leistung helfen wird.

  • Mysqlslap (es ist wie ein Benchmark, aber Sie können das Ergebnis besser anpassen).
  • SysBench (CPU-Leistung, E/A-Leistung, Mutex-Konflikte, Speichergeschwindigkeit, Datenbankleistung testen).
  • Mysqltuner (damit können Sie allgemeine Statistiken, Speicher-Engine-Statistiken, Leistungsmetriken analysieren).
  • mk-query-profiler (Analyse einer SQL-Anweisung durchführen).
  • mysqldumpslow (Gut zu wissen, dass Abfragen Probleme verursachen).