Heim  >  Artikel  >  Eingehende Analyse von MySQL unter Millionen von Daten

Eingehende Analyse von MySQL unter Millionen von Daten

藏色散人
藏色散人nach vorne
2019-04-29 10:17:535608Durchsuche

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:hcoder.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen