max_questions. Query zusammenfassen? Umgehen?

Hallo zusammen, :slight_smile:

Ich habe folgendes Problem:

Ich bastle gerade an einem Programm, welches mir auf meiner Seite anzeigt, ob Spieler eines Online Spiels gerade online sind oder nicht. Zusätzlich wird angegeben wie oft und wie lange sie online waren.

Um das zu realisieren habe ich ein Script gebaut, welches als Cronjob alle 15 Minuten ausgeführt wird. Alle Spieler die gerade online sind werden von der “Who’s Online List” des Spieleanbieters ausgelesen und dann in die Sql Datenbank einfügt.

Nachdem das Script die Spieler ausgelesen hat prüft es erst einmal ob der Spieler schon in der Datenbank existiert:

Wenn ja, kriegt er nur 15 Minuten auf sein “Zeitkonto” gutgeschrieben
(mit Update members set…)

Wenn nein, werden er und seine Eigenschaften in die Datenbank eingefügt, plus die ersten 15 Minuten natürlich. (insert into members…)


Insgesamt sind bei jedem Durchlauf so ca. 40-60k Spieler online (Bei 74 Servern die in einem Array stehen und dann mit foreach durchlaufen werden).
Und da für jeden Spieler mehrere Querys ausgeführt werden stieß ich beim ersten Versuch auf ein Limit.

“max_questions(100000) exceeded”

Natürlich habe ich beim Webhoster angefragt ob sie mir das Limit anheben könnten, was aber nicht der Fall ist.


Nun wollte ich mal Fragen ob jemand eine Idee hat wie man das umgehen kann, ohne mehrere User für die Datenbank zu erstellen, oder das Script für die Server aufzuteilen.


ps. Das war mein erster Post.

Vielen Dank im Voraus,

Grüße

Luke

Ich würde den Anbieter wechseln … aber lassen wir das.

Du kannst die User alle mit einem Mal auslesen und im Speicher vergleichen. Danach setzt du eine Anfrage ab, die alle gefundenen User updated und eine, die den Rest neu einfügt.

Was du da machst gehört aber eigentlich nicht in eine Datenbank sondern in so etwas wie Memcache.

das sind sicher solche versteckte bedingungen - ich wuerde sogar von einem mangel sprechen … wuerde mich sogar wundern wenn du derartige vertraege nicht locker kuendigen kannst …

wie ads schon sagte - hoster wechseln …

so ein quatsch hab ich noch nie erlebt