Ergebnis 1 bis 6 von 6

Thema: MySQL Preformance (Abfragen, Tabellen und Funktionen)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    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 Wo kommt die neue Abfrage her?
    Edit: Stimmt doch alles, hatte noch mehr geändert als das

    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
    Meine Seite: www.klicklos.de

  2. #2
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Grundsätzlich gilt natürlich, je weniger Abfragen, desto besser für die Performance.
    Wobei eine Abfrage, die dann aber 10 Sekunden dauert, weil ineffektiv, genausoschlecht ist wie 10.000 sehr schnelle Abfragen zur gleichen Zeit

    Schau mal in deiner Datenbankverwaltung, da sollte es Statistiken geben, wie viele Anfragen MySQL pro Sekunde verarbeiten muss, das sagt wohl eher was aus.

    ALso MySQL ist für sehr große Datenmengen ausgelegt, über Limits musst du dir keine Gedanken machen, was Zeilenanzahl angeht ;-)
    Eher, welche Limits dir dein Hoster setzt, was die Gesamtgröße der Datenbank betrifft.

    Wenn du allerdings "schlechte" Abfragen hast, kann es sein, dass diese jede Zeile durchgehen müssen, und dann wirds immer schlechter, umsomehr Zeilen. Die Lösung dafür besteht aber im setzen von Indizes und optimieren der Abfragen.

    http://dev.mysql.com/doc/refman/5.1/de/show-status.html
    http://dev.mysql.com/doc/refman/5.1/...variables.html
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  3. #3
    Danke schon mal, da ich leider keinen eigenen Datenbankserver für das VMS habe ist die Auswertung etwas schwierig, aber da er generell nicht sehr viele Anfragen/Sekunde hat, denke ich dass das bei mir okay ist.

    Kann jemand noch was zu den Funktionen vs. direkte DB-Queries sagen?
    Meine Seite: www.klicklos.de

  4. #4

    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?
    Meine Seite: www.klicklos.de

  5. #5
    Erfahrener Benutzer
    Registriert seit
    17.02.2009
    Beiträge
    356

    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.

  6. #6
    Erfahrener Benutzer
    Registriert seit
    22.07.2006
    Beiträge
    273

    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 ...

Ähnliche Themen

  1. veraltete Funktionen
    Von Sabotaj im Forum Support zum VMSone
    Antworten: 7
    Letzter Beitrag: 11.03.2016, 22:31
  2. MYSQL Fehler nach MySQL Version update
    Von Neuroblastom im Forum [HD] Programmieren
    Antworten: 2
    Letzter Beitrag: 20.01.2016, 00:51
  3. EF 49.982 Abfragen
    Von rene_1992 im Forum Sonstiges
    Antworten: 0
    Letzter Beitrag: 03.06.2012, 18:55
  4. Funktionen auslagern
    Von SebbyPHM im Forum Support zu Addons & Erweiterungen
    Antworten: 2
    Letzter Beitrag: 04.05.2010, 00:45
  5. [HTML/CSS/JS] PHP Funktionen in Javascript
    Von jpwfour im Forum [HD] Programmieren
    Antworten: 1
    Letzter Beitrag: 06.11.2009, 19:49

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •