MySQL ist das am zweithäufigsten verwendete relationale Open-Source-Datenbankverwaltungssystem der Welt. Es ist wegen seiner konstant schnellen Leistung, hohen Zuverlässigkeit und Benutzerfreundlichkeit so beliebt geworden. Dieser Artikel stellt einige der Best Practices in MySQL vor.
Best Practices in MySQL
1. Verwenden Sie immer den richtigen Datentyp
Verwenden Sie Datentypen basierend auf der Art der Daten. Wenn Sie irrelevante Datentypen verwenden, kann dies mehr Speicherplatz verbrauchen oder zu Fehlern führen.
Beispiel:Die Verwendung von varchar (20) zum Speichern von Datumszeitwerten anstelle des DATETIME-Datentyps führt zu Fehlern bei datums- und zeitbezogenen Berechnungen, und es gibt auch Fehler ein möglicher Fall der Speicherung ungültiger Daten.
2. Verwenden Sie CHAR (1) über VARCHAR (1)
Wenn Sie ein einzelnes Zeichen aneinanderreihen, verwenden Sie CHAR(1) anstelle von VARCHAR(1), da VARCHAR(1) ein zusätzliches Byte benötigt, um Informationen zu speichern
3. Verwenden Sie den Datentyp CHAR, um nur Daten mit fester Länge zu speichern
Beispiel:Die Verwendung von char(1000) anstelle von varchar(1000) verbraucht mehr Speicherplatz, wenn die Länge der Daten weniger als 1000 beträgt
4. Vermeiden Sie regionale Datumsformate
Wenn Sie den Datentyp DATETIME oder DATE verwenden, verwenden Sie immer das Datumsformat JJJJ-MM-TT oder das ISO-Datumsformat, das zu Ihrer SQL-Engine passt. Andere regionale Formate wie TT-MM-JJJ, MM-TT-JJJJ werden nicht richtig gespeichert.
5. Schlüsselspalten indizieren
Stellen Sie sicher, dass Sie die Spalten indizieren, die in JOIN-Klauseln verwendet werden, damit die Abfrage das Ergebnis schnell zurückgibt.
Wenn Sie die UPDATE-Anweisung verwenden, die mehr als eine Tabelle betrifft, stellen Sie sicher, dass alle Spalten, die zum Verbinden der Tabellen verwendet werden, indiziert sind indexiert
6. Verwenden Sie keine Funktionen über indizierten Spalten
Die Verwendung von Funktionen über indizierten Spalten macht den Zweck des Index zunichte. Angenommen, Sie möchten Daten erhalten, bei denen die ersten beiden Zeichen des Kundencodes AK sind, schreiben Sie nicht
SELECT Spalten FROM table WHERE left (customer_code,2)='AK'
sondern schreiben Sie sie mit
um WÄHLEN Sie Spalten AUS der Tabelle AUS, WO der Kundencode wie 'AK%'
verwendet wird, der den Index verwendet, was zu einer schnelleren Antwortzeit führt.
7. Verwenden Sie SELECT * nur bei Bedarf
Verwenden Sie nicht einfach blind SELECT * im Code. Wenn die Tabelle viele Spalten enthält, werden alle zurückgegeben, was die Antwortzeit verlangsamt, insbesondere wenn Sie das Ergebnis an eine Front-End-Anwendung senden.
Geben Sie explizit die Spaltennamen ein, die tatsächlich benötigt werden.
8. Verwenden Sie die ORDER BY-Klausel nur bei Bedarf
Wenn Sie das Ergebnis in der Front-End-Anwendung anzeigen möchten, lassen Sie es die Ergebnismenge ORDER. Wenn Sie dies in SQL tun, kann die Antwortzeit in der Mehrbenutzerumgebung verlangsamt werden.
9. Wählen Sie die richtige Datenbank-Engine aus
Wenn Sie eine Anwendung entwickeln, die Daten häufiger liest als schreibt (z. B. Suchmaschine), wählen Sie die MyISAM-Speicher-Engine.
Wenn Sie eine Anwendung entwickeln, die Daten häufiger schreibt als liest (z. B. Banktransaktionen in Echtzeit), Wählen Sie die INNODB-Speicher-Engine.
Die Auswahl einer falschen Speicher-Engine wirkt sich auf die Leistung aus
10. Verwenden Sie bei Bedarf die EXISTS-Klausel
Wenn Sie das Vorhandensein von Daten überprüfen möchten, verwenden Sie nicht
If (SELECT count(*) from Table WHERE col='irgendein Wert')>0
sondern verwenden Sie die EXISTS-Klausel
If EXISTS(SELECT * from Table WHERE col='some value')
was schneller in der Antwortzeit ist.