Heim > Datenbank > SQL > Welche Methoden gibt es zur SQL-Optimierung?

Welche Methoden gibt es zur SQL-Optimierung?

王林
Freigeben: 2020-07-01 15:55:05
Original
8943 Leute haben es durchsucht

SQL-Optimierungsmethoden: 1. Vermeiden Sie die Verwendung von [select *], da nutzlose Felder die Abfrageeffizienz verringern. 2. Vermeiden Sie die Verwendung von „in“ und „not in“, Sie können stattdessen zwischen „exists“ und „exists“ wählen , können Sie stattdessen Union wählen.

Welche Methoden gibt es zur SQL-Optimierung?

SQL-Optimierungsmethode:

(empfohlenes Lernen: MySQL-Tutorial)

1 ein Index in der Tabelle, der den Feldern Priorität gibt, die von where und gruppiert nach verwendet werden.

2. Vermeiden Sie die Verwendung von select *. Die Rückgabe nutzloser Felder verringert die Abfrageeffizienz. Wie folgt:

SELECT * FROM t
Nach dem Login kopieren

Optimierungsmethode: Verwenden Sie bestimmte Felder anstelle von * und geben Sie nur die verwendeten Felder zurück.

3. Vermeiden Sie die Verwendung von „in“ und „nicht in“, da dies dazu führen würde, dass die Datenbank-Engine den Index aufgibt und einen vollständigen Tabellenscan durchführt. Wie folgt:

SELECT * FROM t WHERE id IN (2,3)
SELECT * FROM t1 WHERE username IN (SELECT username FROM t2)
Nach dem Login kopieren

Optimierungsmethode: Wenn es sich um einen kontinuierlichen Wert handelt, kann er durch between ersetzt werden. Wie folgt:

SELECT * FROM t WHERE id BETWEEN 2 AND 3
Nach dem Login kopieren

Wenn es sich um eine Unterabfrage handelt, kann sie durch „exists“ ersetzt werden. Wie folgt:

SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t2 WHERE t1.username = t2.username)
Nach dem Login kopieren

4. Vermeiden Sie die Verwendung von oder, da dies dazu führen würde, dass die Datenbank-Engine den Index aufgibt und einen vollständigen Tabellenscan durchführt. Wie folgt:

SELECT * FROM t WHERE id = 1 OR id = 3
Nach dem Login kopieren

Optimierungsmethode: Union kann anstelle von oder verwendet werden. Wie folgt:

SELECT * FROM t WHERE id = 1
UNION
SELECT * FROM t WHERE id = 3
Nach dem Login kopieren

(PS: Wenn die Felder auf beiden Seiten von oder gleich sind, wie im Beispiel. Es scheint, dass die beiden Methoden ungefähr die gleiche Effizienz haben, selbst wenn Union den Index scannt, oder scannt die gesamte Tabelle)

5. Versuchen Sie, Fuzzy-Abfragen am Anfang von Feldern zu vermeiden, die dazu führen, dass die Datenbank-Engine den Index aufgibt und einen vollständigen Tabellenscan durchführt. Wie folgt:

SELECT * FROM t WHERE username LIKE '%li%'
Nach dem Login kopieren

Optimierungsmethode: Versuchen Sie, nach dem Feld eine Fuzzy-Abfrage zu verwenden. Wie folgt:

SELECT * FROM t WHERE username LIKE 'li%'
Nach dem Login kopieren

6. Vermeiden Sie die Beurteilung von Nullwerten, da dies dazu führen würde, dass die Datenbank-Engine den Index aufgibt und einen vollständigen Tabellenscan durchführt. Wie folgt:

SELECT * FROM t WHERE score IS NULL
Nach dem Login kopieren

Optimierungsmethode: Sie können dem Feld einen Standardwert von 0 hinzufügen und den Wert 0 beurteilen. Wie folgt:

SELECT * FROM t WHERE score = 0
Nach dem Login kopieren

7. Versuchen Sie zu vermeiden, Ausdrücke und Funktionsoperationen auf der linken Seite des Gleichheitszeichens in der Where-Bedingung auszuführen, da dies dazu führen würde, dass die Datenbank-Engine den Index aufgibt und einen vollständigen Tabellenscan durchführt. Wie folgt:

SELECT * FROM t2 WHERE score/10 = 9
SELECT * FROM t2 WHERE SUBSTR(username,1,2) = 'li'
Nach dem Login kopieren

Optimierungsmethode: Ausdrücke und Funktionsoperationen können auf die rechte Seite des Gleichheitszeichens verschoben werden. Wie folgt:

SELECT * FROM t2 WHERE score = 10*9
SELECT * FROM t2 WHERE username LIKE 'li%'
Nach dem Login kopieren

8. Wenn die Datenmenge groß ist, vermeiden Sie die Verwendung der Bedingung 1=1. Um die Zusammenstellung von Abfragebedingungen zu erleichtern, verwenden wir normalerweise diese Bedingung standardmäßig, und das Datenbankmodul verwirft den Index und führt einen vollständigen Tabellenscan durch. Wie folgt:

SELECT * FROM t WHERE 1=1
Nach dem Login kopieren

Optimierungsmethode: Verwenden Sie Code, um beim Zusammenstellen von SQL zu beurteilen. Wenn es kein „Wo“ gibt, fügen Sie „Wo“ hinzu.

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zur SQL-Optimierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage