Mysql Daten speichern ressourcen sparend

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Community


    Derzeit frage ich mich was am besten ist zum Speichern von Daten.


    Version 1:


    new query[512];
    format(query, 512, "UPDATE accounts SET Money = %d,AdminLevel = %d,DonateRank = %d,UpgradePoints = %d,ConnectedTime = %d WHERE Name = '%s'",PlayerMoney[playerid],SpielerInfo[playerid][pAdmin],SpielerInfo[playerid][pDonateRank],SpielerInfo[playerid][gPupgrade],SpielerInfo[playerid][pConnectTime],sendername);
    mysql_query(query,(-1),(-1),SQLCon[0]);


    Version 2:


    mysql_SetInt("accounts","DonateRank",SpielerInfo[playerid][pDonateRank] , "Name", sendername);
    mysql_SetInt("accounts","UpgradePoints",SpielerInfo[playerid][gPupgrade] , "Name", sendername);
    mysql_SetInt("accounts","ConnectedTime",SpielerInfo[playerid][pConnectTime] , "Name", sendername);
    mysql_SetInt("accounts","Money", PlayerMoney[playerid] , "Name", sendername);


    Und die dazugehörige mysql_setInt


    stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query,(-1),(-1),SQLCon[0]);
    return true;
    }


    Es sind natürlich viel mehr Daten.
    Das Problem liegt nähmlich das mein Server extrem laggt (3-5 Sekunden passiert nichts bei allen)wenn alle Spieler gespeichert werden und das bei rund 20 Spielern.
    Vielleicht kennt jemand sogar noch eine bessere Lösung.
    Achja derzeit verwende ich Version 2.
    Ich verwende das Mysql Plugin von g-stylez (weiß den Namen nicht genau)


    Edit:
    Ich habe ein Root-Server mit Quadcore 2,6 ghz und 8 GB Ram fals das notwendig ist

    Einmal editiert, zuletzt von Montria ()

  • Mit welchem Programm haste den die Mysql Datenbank Erstellt?!


    Die zweiter Version,sieht natürlich Script-Technisch Besser aus.
    Aber scheint,mehr Ressourcen Zu Verbrauchen.
    Versuch sie mal so zu scripte, das sie nicht wirklich Viel Verbraucht


    MFG
    Sladekillder

  • Die Datenbank selber hatte ich mit Navicat erstellt.


    Zitat

    Versuch sie mal so zu scripte, das sie nicht wirklich Viel Verbraucht

    Ja genau das möchte ich ja wissen was wirklich die beste Lösung ist.

  • Das Programm zu erstellung der Datenbank hat nichts mit dem Resourcenverbrauch zu tun :D


    Die erste möglochkeit ist natürlich am sinnvollesten, du führst ja nur einen query aus und nicht mehrere.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Das Programm zu erstellung der Datenbank hat nichts mit dem Resourcenverbrauch zu tun :D


    Die erste möglochkeit ist natürlich am sinnvollesten, du führst ja nur einen query aus und nicht mehrere.


    Also Version 1 die ich oben geschrieben habe.
    Dann werd ich das wohl mal auf ein paar weniger aufteilen also mehrer Daten in einen Query speichern.
    Wie in Version 1.