MySQL vs MongoDB | Was nutzt ihr für Minecraft?

Um DevTek noch weiter zu verbessern nehme bitte an unserer kurzen Umfrage teil.
  • MongoDB oder MySQL für Minecraft? 85

    1. MongoDB (42) 49%
    2. MySQL (37) 44%
    3. Andere (6) 7%

    Moin DevTekler,


    da in meinem letzten Thread die Diskussion aufkam MongoDB oder MySQL für Minecraft, hier eine kleine Umfrage.


    Bitte schreibt die Gründe wieso ihr gerade die Datenbank verwendet als Antwort in diesen Thread. :)



    Gruß,
    Lusu007

  • Ich nutze tatsächlich für alles Netty. Dadurch kann ich zum Beispiel alle Spielerstatistiken während er online ist cachen und nach dem Leften einfach wieder auf der Festplatte abspeichern.
    Oder - was auch MongoDB kann - einfach alles in einem Objekt abspeichern und dann binär durchsenden :D

    ¯\_(ツ)_/¯
    - "Wenn eure Festplatte mal kaputt ist: fragt mal die NSA, die haben ein Backup", mcf, 2015

  • Ich habe damals auch MySQL und HikariCP verwendet. Später habe ich aber erfahren, dass MongoDB dafür eher verwendet werden sollte. Für MongoDB habe ich aber auch noch keinen ConnectionPool gefunden.

    Es existiert ein Interesse an der generellen Rezession der Applikation relativ primitiver Methoden komplementär zur Favorisierung adäquater komplexer Algorithmen.


    Mit freundlichen Grüßen
    Twister21

  • Naja, es kommt drauf an was ich doch machen möchte. Fange ich ein projekt an und weiß nicht wie später meine Datenbank aussehen soll nutze ich NoSQL Datenbanken. Für Statistiken und Spieldaten wird ausschließlich MySQL benutzt.


    Naja, MySQL ist nicht wirklich performant. Ich brauche bei MySQL ~12ms um einen Wert aus meiner Tabelle auszulesen. Redis oder Netty brauchen nicht mal 1ms bei mir (klar, ist auch Inmemory). Außerdem sollte man bei MySQL die Festplatten Performance beachten. Wenn du nur eine HDD hast, kann diese bei vielen Abfragen und Updates ziemlich ausgelastet sein.

    ¯\_(ツ)_/¯
    - "Wenn eure Festplatte mal kaputt ist: fragt mal die NSA, die haben ein Backup", mcf, 2015

  • Naja, MySQL ist nicht wirklich performant. Ich brauche bei MySQL ~12ms um einen Wert aus meiner Tabelle auszulesen. Redis oder Netty brauchen nicht mal 1ms bei mir (klar, ist auch Inmemory). Außerdem sollte man bei MySQL die Festplatten Performance beachten. Wenn du nur eine HDD hast, kann diese bei vielen Abfragen und Updates ziemlich ausgelastet sein.

    Den Query möchte ich mal gerne sehen... Entweder die Verbindung zu deiner Datenbank ist echt grottig oder deine Datenbank ist einfach keinen Meter optimiert.

  • Den Query möchte ich mal gerne sehen... Entweder die Verbindung zu deiner Datenbank ist echt grottig oder deine Datenbank ist einfach keinen Meter optimiert.


    Die Datenbank ist auf dem gleichen Server wie die Query Abfrage und ist auch nicht optimiert. Ich gehe aber auch davon aus, dass viele die Datenbank nicht optimieren. Außerdem könnte das auch an meinem vServer liegen, denn dieser ist nunmal nicht der beste von der Festplatte her, auch ein Grund, warum ich zu Inmemory DB's gewechselt bin.

    ¯\_(ツ)_/¯
    - "Wenn eure Festplatte mal kaputt ist: fragt mal die NSA, die haben ein Backup", mcf, 2015

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Encotric ()

  • Die Datenbank ist auf dem gleichen Server wie die Query Abfrage und ist auch nicht optimiert. Ich gehe aber auch davon aus, dass viele die Datenbank nicht optimieren. Außerdem könnte das auch an meinem vServer liegen, denn dieser ist nunmal nicht der beste von der Festplatte her, auch ein Grund, warum ich zu Inmemory DB's gewechselt bin.

    Also wenn ich eine Datenbank auf der gleichen Instanz habe und einen einfachen SELECT auf eine Tabelle mit testweise 3000 Datensätzen, die alle selbstverständlich einen Index haben, dann nimmt dieser Query 0,5ms in Anspruch und der Server hat keine SSD.
    Meistens hast du bei einem Minecraft Server bzw. Netzwerk nicht so viele komplexe Abfragen mit vielen Joins usw. und da sollte MySQL eigentlich nicht erheblich langsamer sein als Redis. Zumal mir jetzt noch die Frage aufkommen würde, wie du es denn mit der Langzeit Speicherung handhabst.

  • Also wenn ich eine Datenbank auf der gleichen Instanz habe und einen einfachen SELECT auf eine Tabelle mit testweise 3000 Datensätzen, die alle selbstverständlich einen Index haben, dann nimmt dieser Query 0,5ms in Anspruch und der Server hat keine SSD.
    Meistens hast du bei einem Minecraft Server bzw. Netzwerk nicht so viele komplexe Abfragen mit vielen Joins usw. und da sollte MySQL eigentlich nicht erheblich langsamer sein als Redis. Zumal mir jetzt noch die Frage aufkommen würde, wie du es denn mit der Langzeit Speicherung handhabst.


    Nunja, ich nutze nicht immer Redis. Ich habe - wie ich schon geschrieben habe - mit Netty einen Server geschrieben, welcher sobald ein Spieler joint seine Daten cached und sobald er wieder leftet seine Daten in sein eigenes Playerfile (also einfach eine Datei) speichert (ich weiß, nicht die beste Möglichkeit, wenn man die Dateien mal kopieren will). Dann kann man einfach die Daten vom Server per Packets abfragen.

    ¯\_(ツ)_/¯
    - "Wenn eure Festplatte mal kaputt ist: fragt mal die NSA, die haben ein Backup", mcf, 2015

  • Das ist ja dann im Pronzip eine eigene Datenbank mit Cache. Ist ja im Prinzip das gleiche wie MySQL + Redis. Bloß, dass MySQL die Daten komplexer speichert.

    Es existiert ein Interesse an der generellen Rezession der Applikation relativ primitiver Methoden komplementär zur Favorisierung adäquater komplexer Algorithmen.


    Mit freundlichen Grüßen
    Twister21

  • Kennt jemand vielleicht ein gutes MongoDB Tutorial (Wie man einen Server aufsetzt & wie man damit in Java codet)?

    01001000 01101001 01100101 01110010 00100000 01101011 11000011 10110110 01101110 01101110 01110100 01100101 00100000 01001001 01101000 01110010 01100101 00100000 01100010 01101001 01101110 11000011 10100100 01110010 01100101 00100000 01010111 01100101 01110010 01100010 01110101 01101110 01100111 00100000 01110011 01110100 01100101 01101000 01100101 01101110 00100001