MySQL Preformance (Abfragen, Tabellen und Funktionen)
Hallo,
ich habe mal ein paar Fragen was die Performance von MySQL angeht.
1. Wie viele Abfragen sind so "guter Durchschnitt"?
Ich liege bei meiner Seite je nach Inhalt irgendwo zwischen 10-20 Abfragen eingeloggt bzw. <5 ausgeloggt.
Wie viel verträgt so ein normaler Datenbankserver?
Wie viele Abfragen sind auf anderen Seiten so normal?
2. Wie viele Zeilen verträgt eine MySQL Tabelle?
Ich habe mein Script etwas bearbeitet und Tabellen zusammengefasst. In einer sind ca. 1500 Zeilen und 16 Spalten (Doubles, INT und Varchars drin). Noch läuft da alles, aber ab wann stößt man da an die Performancegrenze?
3. Eine Frage zu den Funktionen:
Beim Tausch Lose->Bonuslose habe ich momentan 12 Abfragen.
Dabei wird beim Tausch in einem Query Lose abgezogen und Bonuslose gutgeschrieben.
Jetzt habe ich dafür auch 2 Funktionen.
Eine Funktion: Lose abziehen, eine Funktion Bonuslose gutschreiben (je 1 Query pro Funktion)
Wenn ich jetzt statt des normalen Queries die 2 Funktionen einbaue werden es aber 14 Abfragen.
Aber es müssten doch 13 sein :suspicious: Wo kommt die neue Abfrage her?
Edit: Stimmt doch alles, hatte noch mehr geändert als das :der:
Und dazu noch eine Frage:
4. Macht es (von der Geschwindigkeit her) einen Unterschied ob ich direkt den Query einbinde oder erst auf die functions.lib verweise und dort den Query ausführe. Weil ich lieber (der Einfachheit/Übersichtlichkeit halber) mit Funktionen arbeite.
Oder sollte man doch lieber die Querys direkt einbinden.
P.S.: Frohes neues ;)
AW: MySQL Preformance (Abfragen, Tabellen und Funktionen)
Hallo,
da ich nochmal eine Frage zur MySQL Performance habe, stelle ich sie mal hier mit rein.
Macht das aufteilen auf mehrere Tabellen eigentlich Sinn? Also wenn ich z.B: auf jeder Seite die Infos aus der Tabelle kontodaten und userdaten abfrage, ist dann ein LEFT JOIN schneller oder wäre es schneller wenn man beide Tabellen zu einer verschmilzt? So hat man zwar in einer Tabelle etwas mehr Spalten (11 in meinem Fall) aber würde sich ein LEFT JOIN sparen. Was wäre da von der Performance die schnellere Lösung?
AW: MySQL Preformance (Abfragen, Tabellen und Funktionen)
Die Aufteilung macht einen Sinn. Ich hab gelernt : Programmiere immer so das man es möglichst gut nachvollziehen kann. Eine Unterteilung bringt eine gewisse Ordnung in die Sache. Außerdem machst hast du mehr Abfragen auf Kontodaten als auf die Userdaten. Wenn alles in einer ist dann muss außerdem mehr durchsucht werden um die richtigen Spalten zu finden bei jeder Abfrage. Eine solche Abfrage (die man nicht machen sollte) "SELECT * FROM" würde noch mehr unnütze Daten Abfragen.
Wenn's dir wirklich auf die Performance ankommt dann kann ich dir nur empfehlen dich mit Mysqli zu beschäftigen.
AW: MySQL Preformance (Abfragen, Tabellen und Funktionen)
an MySQLi oder PDO führt so oder so kein Weg mehr vorbei da MySQL als als veraltet markiert wurde und in einer der kommenden PHP Versionen entsprechend raus fliegen wird.
Siehe hier:
http://php.net/manual/de/function.mysql-query.php
Wenn man dann schon mit MySQLi oder PDO anfängt sollte man sich auch gleich mit den prepared statements befassen -> Thema Sicherheit -> SQL Injections ...