Alternative zu SQL oder doch möglich?

Pelix

Benutzer
Beiträge
5
Hallo zusammen,

derzeit bin ich dabei HTML5 u. WebSockets zu lernen und arbeite an einem Online-RPG. Soweit funktioniert das auch alles nur werden derzeit alle Daten im Cache des Spielers gespeichert. Da alle Daten weg sind wenn man den Cache leert habe ich natürlich darüber nachgedacht, die Daten in einer Datenbank zu hinterlegen.

Jetzt nur die Frage: Eignet sich SQL für solche Daten da sich Diese ja ständig aktualisieren. Nicht das die Datenbank irgendwann nicht mehr hinterher kommt. Der Server hat aktuell nur 8GB RAM.

Oder gibt es eine gute Alternative um diese Daten zu speichern?
 
Werbung:
Hallo zusammen,

derzeit bin ich dabei HTML5 u. WebSockets zu lernen und arbeite an einem Online-RPG. Soweit funktioniert das auch alles nur werden derzeit alle Daten im Cache des Spielers gespeichert. Da alle Daten weg sind wenn man den Cache leert habe ich natürlich darüber nachgedacht, die Daten in einer Datenbank zu hinterlegen.

Jetzt nur die Frage: Eignet sich SQL für solche Daten da sich Diese ja ständig aktualisieren. Nicht das die Datenbank irgendwann nicht mehr hinterher kommt. Der Server hat aktuell nur 8GB RAM.

Oder gibt es eine gute Alternative um diese Daten zu speichern?

Woher sollen wir wissen, was da für konkrete Anforderungen bestehen? Wenn die Daten persistent sein sollen wirst eine DB wohl brauchen. Je nach Anforderung sind 8GB sehr viel bis absolut zu wenig.

Andreas
 
Du hast meine Frage nicht verstanden oder?
Ich wollte wissen ob man viele Datensätze mit SQL umsetzen kann oder ob es eine Alternative gibt.

Damit meine ich keine Daten im Sinne von "News oder Artikel" sondern Charakterdaten wie Level, Leben, Items, etc.
 
Du hast meine Frage nicht verstanden oder?
Ich wollte wissen ob man viele Datensätze mit SQL umsetzen kann oder ob es eine Alternative gibt.

Damit meine ich keine Daten im Sinne von "News oder Artikel" sondern Charakterdaten wie Level, Leben, Items, etc.

Kommt halt drauf an, was Du unter 'viele Datensätze' verstehst. Hier mal die typischen Limits einer Datenbank:

Code:
Maximum size for a database? unlimited (32 TB databases exist)
Maximum size for a table? 32 TB
Maximum size for a row? 400 GB
Maximum size for a field? 1 GB
Maximum number of rows in a table? unlimited
Maximum number of columns in a table? 250-1600 depending on column types
Maximum number of indexes on a table? unlimited

Quelle: http://wiki.postgresql.org/wiki/FAQ

Ob das das News, Artikel, Charakterdaten oder Kochrezepte sind ist der DB vollständig egal.
 
Aber macht es nicht einen Unterschied ob die Datenbank hin und wieder mal einen Eintrag erstellt und ausliest oder ob die Datenbank in wenigen Sekunden mehrere hundert Datensätze schreibt und liest?
 
Aber macht es nicht einen Unterschied ob die Datenbank hin und wieder mal einen Eintrag erstellt und ausliest oder ob die Datenbank in wenigen Sekunden mehrere hundert Datensätze schreibt und liest?

Ja, sicher macht es das. Ich habe hier auch die ganze ganze Bandbreite von Datenbanken, wo aller paar Tage mal was ist bis hin zu Datenbanken mit einigen hundert Inserts pro Sekunde Dauerlast. Für letzteres braucht man mehr Hardware als für ersteres.
Ansonsten: siehe meine erste Antwort.
 
Ja und genau deswegen habe ich ja gefragt ob es überhaupt sinnvoll ist die Speicherung mit SQL durchzuführen oder sollte ich eine andere Methode verwenden und wenn ja welche. Gibt ja noch viele andere Systeme um Datenbanken zu erzeugen bin da nur nicht so ganz im Bilde was man für so ein Projekt nutzen könnte.

Ist natürlich ein extremer Vergleich aber World of Warcraft wird die Daten wohl nicht als SQL speichern.
 
Ich denke schon das eine relationale DB zunächst mal dafür konzipiert und ausgelegt ist viele Daten schnell zu verarbeiten. In deinem Fall würde ich mit sicherheit dazu raten grade weil dein Server auch nich die dickste Maschine ist.

Natürlich gibt es überall Spezialfälle wie NoSQL, InMemoryDB oder komplett eigene Rechner Architekturen wie im Banken Sektor mit MainFrame. Aber selbst die großen a la Facebook, Google und Twitter schnappen sich eine SQL DB und basteln daran rum bis es für ihre Zwecke läuft. Natürlich fällt es Twitter jetzt schwer aufgrund des hohen Datenvolumen alles mit SQL zu skalieren, aber bitte was für ein RPG planst du auf einem 8GB RAM Server um dich daran zu messen? Ich sage mal unter 1 Mio Spieler ist die DB Technik nicht ausschlaggebend sondern höchstens das DB-Design und die Hardware des Servers.
 
Hallo ukulele,

zunächst mal vielen Dank für die Antwort.

Natürlich kann man dieses Online-RPG nicht mit den Bekannten wie WoW, etc. vergleichen - es ist komplett in HTML5 geschrieben.
Ich war mir nur nicht sicher, ob SQL sich für sowas eignet. Bis jetzt habe ich SQL nur für Webseiten und Teamspeak genutzt wobei
sich hier die Auslastung natürlich in Grenzen hält.

Also kann ich die Speicherung und Auslesungen der Charaktere vorerst ohne Bedenken mit SQL umsetzen. Nunja, wenn die 8 GB nicht
mehr reichen sollten aufgrund der Spielerzahl, werde ich garantiert das Geld für einen neuen Server haben. ;)
 
Werbung:
Ich denke auch du hast keine Engpässe aufgrund des Einsatzes von SQL zu befürchten. Es sei nur gesagt das natürlich die SQL Versionen viele Unterschiede bieten und ich (und sicher noch andere hier ;) ) rate erstmal von MySQL ab, obwohl es so gängig ist. Postgres ist sicher eine bessere Wahl wenn man sowieso neu anfängt. Außerdem sollte man beim relationalen Modell die Tabellen mit bedacht planen und nicht einfach irgendwas irgendwo ablegen und immer wieder "anbauen".
 
Zurück
Oben