MySQL unterstützt Hash- und B-Tree-Indizes. InnoDB und MyISAM unterstützen nur Btree-Indizes, während die Memory- und Heap-Speicher-Engines sowohl Hash- als auch Btree-Indizes unterstützen können. Die aktuelle Indexnutzung können wir mit folgender Anweisung abfragen: Status wie „%Handler_read%“ anzeigen; +--------------------------+----------+ | Variablenname | Wert | +--------------------------+----------+ | Handler_read_first | 0 | | Handler_read_key | 0 | | Zuletzt gelesener Handler | 0 | | Weiter lesen | 0 | | Handler_read_prev | 0 | | Handler_read_rnd | 0 | | Handler_read_rnd_next | 0 | +--------------------------+----------+ Wenn der Index funktioniert, ist der Wert von Handler_read_key hoch. Dieser Wert gibt an, wie oft eine Zeile vom Indexwert gelesen wird. Wenn der Wert niedrig ist, ist die Leistungsverbesserung durch das Hinzufügen eines Index zum Tabellennamen nicht hoch, sodass der Index nicht oft verwendet wird. Wenn der Handler_read_rnd_next-Wert hoch ist, bedeutet dies, dass die Abfrage ineffizient ausgeführt wird und ein Index erstellt werden sollte, um die Situation zu beheben. Dieser Wert gibt die Anzahl der Anforderungen zum Lesen der nächsten Zeile in der Datendatei an. Wenn viele Tabellenscans stattfinden, ist Handler_read_rnd_next hoch. Dies weist darauf hin, dass der Index falsch ist oder nicht verwendet wird. Optimierung: Optimieren Sie die Insert-Anweisung: 1. Versuchen Sie, „insert into test values(),(),(),()...“ zu verwenden. 2. Wenn Sie mehrere Zeilen von verschiedenen Kunden einfügen, können Sie mit der Anweisung INSERT delay eine höhere Geschwindigkeit erzielen. Delayed bedeutet, dass die Anweisung INSERT sofort ausgeführt wird. Tatsächlich werden die Daten in eine Speicherwarteschlange gestellt und nicht wirklich auf die Festplatte geschrieben. Dies ist viel schneller, als jede Anweisung einzeln einzufügen. Low_priority ist genau das Gegenteil. Die Einfügung wird ausgeführt, nachdem alle anderen Benutzer mit dem Lesen und Schreiben der Tabelle fertig sind. 3. Speichern Sie Indexdateien und Datendateien auf verschiedenen Datenträgern (mithilfe von Anweisungen zur Tabellenerstellung). 4. Wenn Sie Batch-Einfügungen durchführen, können Sie den Wert der Variablen bulk_insert_buffer_size erhöhen, um die Geschwindigkeit zu steigern, aber nur für MyISAM-Tabellen. 5. Wenn Sie eine Tabelle aus einer Textdatei laden, verwenden Sie „load data file“, was normalerweise 20-mal schneller ist als „insert“ Optimieren Sie die Group-By-Anweisung: Standardmäßig sortiert MySQL alle „Group by“-Felder, was „Order by“ ähnelt. Wenn die Abfrage eine Gruppierung nach enthält, der Benutzer jedoch die Verwendung sortierter Ergebnisse vermeiden möchte, können Sie „order by null“ angeben, um die Sortierung zu unterdrücken. Optimieren Sie die Order By-Anweisung: In einigen Fällen kann MySQL einen Index verwenden, um die ORDER BY-Klausel zu erfüllen, wodurch die Notwendigkeit einer zusätzlichen Sortierung entfällt. Die Where-Bedingung und Order By verwenden denselben Index, und die Order By-Reihenfolge ist dieselbe wie die Indexreihenfolge, und die Order By-Felder erfolgen in aufsteigender oder absteigender Reihenfolge. Optimieren verschachtelter Abfragen: MySQL 4.1 unterstützt nun Unterabfragen, aber in manchen Fällen können Unterabfragen durch effizientere Verknüpfungen ersetzt werden, insbesondere wenn die zu verknüpfende passive Tabelle einen Index hat. Der Grund dafür ist, dass MySQL keine temporäre Tabelle im Speicher erstellen muss, um diese Abfrage abzuschließen, die logischerweise zwei Schritte erfordert. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Tipps zum Erstellen von Web-Tabellenrahmen
>>: Vue-Interpretation der responsiven Prinzip-Quellcode-Analyse
Inhaltsverzeichnis Merkmale Vorteile Installation...
Erstellen Sie in MySQL eine neue Tabelle mit drei...
Inhaltsverzeichnis Vorwort Wie wechselt man zwisc...
Da li ein Element auf Blockebene ist und standard...
1. forEach() ist ähnlich wie map(). Es wendet ebe...
Zuerst müssen wir einige Abhängigkeiten installie...
Kürzlich stieß ich auf eine Webseite, die zwar Bil...
Responsive Design bedeutet, während des Website-E...
Installation der Msyql-Datenbank. Zu Ihrer Inform...
Inhaltsverzeichnis 1. Sicherung 1.1 Vollständig v...
Nachdem wir eine halbe Stunde lang versucht hatte...
Inhaltsverzeichnis Vorwort Optionale Verkettung N...
Im Folgenden werden die häufig verwendete Kopfstr...
Vorwort Da Computerzahlen Gleitkommazahlen sind, ...
Vorwort Die Verwendung von CSS zum Generieren gep...