Mysql wird häufig als sehr gute kostenlose Datenbank verwendet. Normalerweise überschreiten die Daten der von uns entwickelten Projekte selten eine Million. In letzter Zeit habe ich viel Zeit damit verbracht, mich eingehend mit der Optimierung von MySQL bei Millionen von Daten zu befassen. Ich bin auf viele Probleme gestoßen und habe sie gelöst, und ich möchte sie gerne mit Ihnen teilen. Ihre wertvollen Meinungen sind willkommen!
1. Einführung in die MSSQL-Testumgebung auf Millionenebene
MySQL verwendet count(*), um die Gesamtzahl der Daten bei 3 Millionen Teilen abzufragen der Daten (Myisam-Engine). Die Bedingung (Indizierung korrekt eingestellt) läuft einwandfrei. Für Daten, die häufig gelesen werden, empfehlen wir die Verwendung der myIsam-Engine...
Für Details klicken Sie auf: „Einführung in die MSQL-Testumgebung für Millionen von Daten“
II, MySQL-Paging-Problem bei Millionen von Daten
Während des Entwicklungsprozesses verwenden wir häufig Paging. Die Kerntechnologie besteht darin, Limit zum Lesen von Daten zu verwenden. Während des Tests zur Verwendung des Limits für Paging wurden die folgenden Daten erhalten:
select * from news order by id desc limit 0,10 耗时0.003秒 select * from news order by id desc limit 10000,10 耗时0.058秒 select * from news order by id desc limit 100000,10 耗时0.575秒 select * from news order by id desc limit 1000000,10 耗时7.28秒
Wir waren überrascht, dass die Abfragegeschwindigkeit umso langsamer war, je größer der Paging-Startpunkt von MySQL bei großem Datenvolumen war. Die Abfragegeschwindigkeit für 1 Million Artikel beträgt bereits 7 Sekunden. Dies ist ein Wert, den wir nicht akzeptieren können...
Für Details klicken Sie auf: „MySQL-Paging-Problem unter Millionen von Daten“
3 von Daten Hinweise zu bedingten MySQL-Abfragen und Paging-Abfragen
In Fortsetzung des vorherigen Abschnitts „MySQL-Paging-Problem mit Millionen von Daten“ fügen wir die Abfragebedingungen hinzu:
select id from news where cate = 1 order by id desc limit 500000 ,10 查询时间 20 秒
Was für ein Schrecken Geschwindigkeit! ! Nutzen Sie das Wissen aus dem ersten Abschnitt „Einführung in die MySQL-Datentestumgebung für Millionen von Daten“, um zu optimieren...
Für Details klicken Sie auf: „Hinweise zu bedingten MySQL-Abfragen und Paging-Abfragen unter Millionen von Daten"
4. Der Unterschied zwischen der MySQL-Speicher-Engine myIsam und innodb
MySQL verfügt über mehrere Speicher-Engines, von denen MyISAM und InnoDB zwei häufig verwendet werden diejenigen. Hier sind einige grundlegende Konzepte zu diesen beiden Motoren (keine ausführliche Einführung).
MyISAM ist die Standardspeicher-Engine für MySQL. Sie basiert auf dem traditionellen ISAM-Typ und unterstützt die Volltextsuche, ist jedoch nicht transaktionssicher und unterstützt keine Fremdschlüssel. Jede MyISAM-Tabelle wird in drei Dateien gespeichert: Die FRM-Datei speichert die Tabellendefinition; die Datendatei ist MYD (MYData); die Indexdatei ist MYI (MYIndex)...
Für Details klicken Sie auf: „MySQL-Speicher Der Unterschied zwischen der Engine myIsam und innodb 》
5. Etwas Erfahrung in der MySQL-Leistungsoptimierung
Die meisten MySQL-Server haben Abfrage-Caching aktiviert. Dies ist eine der effektivsten Möglichkeiten zur Leistungsverbesserung und wird von der MySQL-Datenbank-Engine verwaltet. Wenn viele der gleichen Abfragen mehrmals ausgeführt werden, werden diese Abfrageergebnisse in einem Cache abgelegt, sodass nachfolgende identische Abfragen die Tabelle nicht bedienen müssen, sondern direkt auf die zwischengespeicherten Ergebnisse zugreifen...
Klicken Sie für Details: „Einige Erfahrungen in der MySQL-Leistungsoptimierung“