MySQL-Server Performance verbessern

Sithys

Captain
Registriert
Dez. 2010
Beiträge
3.464
Moin zusammen,
wir haben eine schlanke Anwendung mit MySQL-Datenbank im Hintergrund. Da teilweise sehr komplexe Abfragen vorhanden sind, würde ich gerne dem MySQL-Server (sofern möglich) unter die Arme greifen und diesen so konfigurieren, dass er bestmöglich arbeiten kann. Gib es Firmen die sich auf sowas spezialisiert haben oder gibt es Standard Tricks und Tipps, die so einem MySQL-Server zusätzliche Performance verschaffen?

Man kann so viele Dinge in der My.ini einstellen und ich gehe einfach davon aus, dass ein Spezialist da bei uns Dinge findet von denen er sagen würde, das macht man so nicht, da muss das und das drin stehen.

Ich hoffe, man versteht, worauf ich hinaus möchte :-).

LG
 
Wichtig
0. Eine Laufzeitanalyse und schauen was an den Abfragen denn so lange dauert.
0.1. Entsprechend diese Teile optimieren

Weniger wichtig
1. Abfragen und Datenbankschema optimieren
1.1. Manchmal hilft es das Schema zu denormalisieren
1.2. Je nach Abfrage kann man Werte auch einfach Vorberechnet in eine weitere Tabelle ablegen.
2. Indizes
3. Stored procedures
4. Mehr Ram und die Config so anpassen, dass der RAM genutzt wird
5. Schneller Festspeicher

"kommt drauf an"
6. Je nachdem was ihr macht ist MySQL nicht passend und ein anders RDBS könnte mehr Performance rausholen oder generell der Wechsel weg vom spaltenbasiertem, rationalem Datenbanksystem
Edit: Mysql ist Zeilenbasiert und nicht spaltenbasiert! Entsprechend muss es "zeilenbasierten, rationalen Datenbanksystemen" heißen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: holdes, konkretor, Rickmer und eine weitere Person
Wenn ich mich richtig erinnere (ist ein paar Jahre her), bietet Kristian Koehntopp diese Dienstleistung professionell an - vllt. hier mal schauen:
https://blog.koehntopp.info

Piktogramm schrieb:
Weniger wichtig
[...]
2. Indizes
Dem stimme ich nicht zu.
Die Indizes sind in vielen Fällen das A und O; wenn die nicht passen, enden Queries idR. mit einem full stroke Lesen/Parsen der beteiligten Tabellen - das will man aber eigentlich vermeiden.

Piktogramm schrieb:
"kommt drauf an"
6. Je nachdem was ihr macht ist MySQL nicht passend und ein anders RDBS könnte mehr Performance rausholen oder generell der Wechsel weg vom spaltenbasiertem, rationalem Datenbanksystem
Meines Wissens sind NoSQL-DBMS nicht schneller, sondern meist flexibler.
Bei RDBMS steht das R für Relational.
 
@Phrasendreher
Da steht "weniger wichtig" und nicht unwichtig. Wie du schon selber schreibst, gibt es Fälle wo ein Index schlicht nichts bringt.
Ob nicht rationale DBS oder rationale DBS mit Zeilen- oder Spaltenorientierung schneller sind, kommt vorrangig darauf an, was mit den Daten gemacht werden soll und wie gut die Implementierung der Abfragen ist.
 
  • Gefällt mir
Reaktionen: holdes
Zurück
Oben