Heim >Datenbank >MySQL-Tutorial >Begrenzen Sie die Optimierung in MySQL

Begrenzen Sie die Optimierung in MySQL

咔咔
咔咔Original
2021-01-18 22:42:212614Durchsuche
"

Abschließend beginnen wir mit der Optimierung von MySQL. In diesem Artikel wird die Optimierung von Paging erläutert. Ich hoffe, ich kann eine Lösung finden, die zu Ihnen passt

"

Vorwort

Das Thema Paging ist bereits ein Klischee, aber wie viele Freunde möchten ihre eigenen Systeme optimieren und gleichzeitig ihre eigene einzigartige Persönlichkeit in Projekten bewahren?

Begrenzen Sie die Optimierung in MySQL
Persönliche

Optimierung erfordert, dass Sie selbst die Initiative ergreifen und Ihre eigenen Testdaten erhalten. Erst auf dem Weg zum Testen werden Sie weitere Dinge entdecken, die Sie nicht wissen.

In diesem Artikel wird auch das Thema Paginierungsoptimierung erläutert.

1. Tabellenstruktur

Diese Datenbankstruktur ist die Tabelle von Kakas aktuellen Online-Projekten, mit der Ausnahme, dass Kaka die Feldnamen geändert und das Zeitfeld gestrichen hat.

Die Datenbankstruktur ist wie folgt

<span style="display: block; background: url(https://files.mdnice.com/point.png); height: 30px; width: 100%; background-size: 40px; background-repeat: no-repeat; background-color: #282c34; margin-bottom: -7px; border-radius: 5px; background-position: 10px 10px;"></span><code class="hljs" style="overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; padding-top: 15px; background: #282c34; border-radius: 5px;"><span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">CREATE</span> <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">TABLE</span> <span class="hljs-string" style="color: #98c379; line-height: 26px;">`tp_statistics`</span> (<br/>  <span class="hljs-string" style="color: #98c379; line-height: 26px;">`ss_id`</span> <span class="hljs-built_in" style="color: #e6c07b; line-height: 26px;">int</span>(<span class="hljs-number" style="color: #d19a66; line-height: 26px;">11</span>) <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">NOT</span> <span class="hljs-literal" style="color: #56b6c2; line-height: 26px;">NULL</span> AUTO_INCREMENT,<br/>  <span class="hljs-string" style="color: #98c379; line-height: 26px;">`ss_field1`</span> <span class="hljs-built_in" style="color: #e6c07b; line-height: 26px;">decimal</span>(<span class="hljs-number" style="color: #d19a66; line-height: 26px;">11</span>,<span class="hljs-number" style="color: #d19a66; line-height: 26px;">2</span>) <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">NOT</span> <span class="hljs-literal" style="color: #56b6c2; line-height: 26px;">NULL</span> <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">DEFAULT</span> <span class="hljs-string" style="color: #98c379; line-height: 26px;">&#39;0.00&#39;</span>,<br/>  <span class="hljs-string" style="color: #98c379; line-height: 26px;">`ss_field2`</span> <span class="hljs-built_in" style="color: #e6c07b; line-height: 26px;">decimal</span>(<span class="hljs-number" style="color: #d19a66; line-height: 26px;">11</span>,<span class="hljs-number" style="color: #d19a66; line-height: 26px;">2</span>) <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">NOT</span> <span class="hljs-literal" style="color: #56b6c2; line-height: 26px;">NULL</span> <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">DEFAULT</span> <span class="hljs-string" style="color: #98c379; line-height: 26px;">&#39;0.00&#39;</span>,<br/>  <span class="hljs-string" style="color: #98c379; line-height: 26px;">`ss_field3`</span> <span class="hljs-built_in" style="color: #e6c07b; line-height: 26px;">decimal</span>(<span class="hljs-number" style="color: #d19a66; line-height: 26px;">11</span>,<span class="hljs-number" style="color: #d19a66; line-height: 26px;">2</span>) <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">NOT</span> <span class="hljs-literal" style="color: #56b6c2; line-height: 26px;">NULL</span> <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">DEFAULT</span> <span class="hljs-string" style="color: #98c379; line-height: 26px;">&#39;0.00&#39;</span>,<br/>  PRIMARY <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">KEY</span> (<span class="hljs-string" style="color: #98c379; line-height: 26px;">`ss_id`</span>)<br/>) <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">ENGINE</span>=<span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">InnoDB</span> AUTO_INCREMENT=<span class="hljs-number" style="color: #d19a66; line-height: 26px;">3499994</span> <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">DEFAULT</span> <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">CHARSET</span>=utf8 <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">COLLATE</span>=utf8mb4_general_ci ROW_FORMAT=<span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">COMPACT</span>;<br/><br/></code>
Begrenzen Sie die Optimierung in MySQL
Tabellenstruktur

Anhand der obigen Informationen können wir sehen, dass die Tabelle derzeit 3,5 Millionen Datensätze enthält. Als nächstes werden wir die Abfrage für diese 3,5 Millionen Datensätze optimieren .

2. Vorläufige Untersuchung der Abfrageeffizienz

Schreiben wir zunächst eine Abfrage-SQL-Anweisung und werfen wir einen Blick auf die von der Abfrage verbrauchte Zeit.

Anhand der folgenden Abbildung können Sie sehen, dass die Abfragezeit grundsätzlich ignoriert wird. Was jedoch beachtet werden sollte, ist der Offsetwert des Grenzwerts.

Begrenzen Sie die Optimierung in MySQL
Erste Abfrageergebnisse

Wir müssen also den Offset schrittweise erhöhen und dann testen. Ändern Sie zunächst den Offset auf 10000.

Sie sehen, dass die Abfragezeit immer noch sehr ideal ist.

Begrenzen Sie die Optimierung in MySQL
Offset 10000-Abfrage

Um Zeit zu sparen, klicken Sie auf und passen Sie den Offset-Wert direkt auf 340 W an.

Zu diesem Zeitpunkt sind sehr deutliche Änderungen zu erkennen, die Abfragezeit hat sich auf 0,79 Sekunden erhöht.

Begrenzen Sie die Optimierung in MySQL
Offset-340-W-Abfrage

Wenn eine solche Situation auftritt, muss sie unbedingt optimiert werden. Nehmen Sie einfach die Tastatur in die Hand und führen Sie sie aus. 3. Analysieren der Gründe, warum Abfragen Zeit brauchen Schauen Sie sich den grundlegenden Teil von MySQL an.

Wie Sie auf dem Bild unten sehen können, wurden für alle drei Abfrageanweisungen Tabellenscans durchgeführt.

Das obige ist der detaillierte Inhalt vonBegrenzen Sie die Optimierung in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn