Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:mysql:performance

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

db:mysql:performance [2019/10/13 15:56]
webproducer angelegt
db:mysql:performance [2020/09/15 11:29] (aktuell)
webproducer Tipp Nummer 6 ergänzt
Zeile 8: Zeile 8:
  
   - Alle Datenfelder,​ die mit der WHERE-Anweisung gesucht werden, einem Index "​KEY"​ hinzufügen   - Alle Datenfelder,​ die mit der WHERE-Anweisung gesucht werden, einem Index "​KEY"​ hinzufügen
-  - Beim SELECT auf das * verzichten, sondern ​nur die benötigten Felder explizit angeben+  - Beim SELECT auf das Wildcard ​* verzichten! Stattdessen ​nur die benötigten Felder explizit angeben. Hintergrund ist, dass der Index bei indizierten Datenbankfeldern nur greift, wenn diese Felder im SELECT angegeben wurden.
   - Nach Möglichkeit auf Funktion wie z. B. DATE() verzichten, da mySQL sonst vorher die Tabelle temporär dupliziert   - Nach Möglichkeit auf Funktion wie z. B. DATE() verzichten, da mySQL sonst vorher die Tabelle temporär dupliziert
   - Nach Möglichkeit auf ORDER BY und GROUP BY verzichten: Doppelte Einträge lieber durch [[distinct|DISTIINCT]] vermeiden   - Nach Möglichkeit auf ORDER BY und GROUP BY verzichten: Doppelte Einträge lieber durch [[distinct|DISTIINCT]] vermeiden
   - Sub-Selects lieber in der Programmiersprache,​ z. B. PHP lösen anstatt in SQL   - Sub-Selects lieber in der Programmiersprache,​ z. B. PHP lösen anstatt in SQL
 +  - Nach dem gleichen Datei-Typen suchen, der auch in der Datenbank angelegt wurde! Wenn z. B. ein UNIX_TIMESTAMP in der Datenbank als STRING angelegt wurde ist die folgende Suche zu vermeiden: ...WHERE timestamp = 1584199620. Stattdessen sollte der Timestamp in einfachen Anführungszeichen stehen. Dadaurch sind z. B. beim Tabellen mit 360 Mio. Zeilen eine Zeitersparnis von über 35 Sekunden pro Aufruf möglich!!
  
  
  
db/mysql/performance.1570974968.txt.gz · Zuletzt geändert: 2019/10/13 15:56 von webproducer