MySQL / PostgreSQL / MariaDB
Bonjour à vous,
Je travaille sur un projet perso de serveur de jeu, pour cela je dois gérer les joueurs (Grade, Permissions, Préférences, Statistiques...) via une BDD. Ces informations devront être accessibles facilement depuis un site Web (PHP), mais surtout en jeu (Java).
Pour ce faire j'utilisais jusqu'à maintenant une BDD MySQL (hébergée chez alwaysdata.com). Pour l'instant je n'en suis qu'aux tests, mais j'ai beaucoup de soucis avec MySQL:
- lenteur des requêtes (dans mon code en Java, j'insère les données sur la BDD et je souhaite les récupérer tout juste après (dans une autre classe par exemple), mais problème, les données n'ont pas eu le temps d'être ajoutées). Ceci dit le problème vient certainement de l'hébergement gratos :)
- erreurs à gogo (colonne inconnue alors qu'elle existe, je renvoie la requête et ça fonctionne)
- déconnexions intempestives (le programme en Java tourne sur un serveur et se la connexion à la BDD s'effectue au démarrage, et n'est fermée qu'à l'arrêt, si il n'y a pas transfert de données pendant un certains temps, la connexion se ferme. Problème, si à chaque fois que j'effectue une requête je dois vérifier que la connexion est ouverte, cela est extrêmement long!)
Bref, pour mes premiers pas avec un base de données, ça n'a pas été une grande réussite. J'ai donc cherché une alternative à MySQL, et je suis tombé sur PostgreSQL (certes plus complexe, mais d'après certains, plus évolué).
Voilà donc mon problème: pour une infrastructure d'environ 500 joueurs connectés en même temps (100 au début, mais on espère arriver à 1000 constant, et par conséquent une table "globale" recensant tous les joueurs, qui pourra dépasser les 50 000 / 100 000 joueurs à l'avenir), pensez-vous que PostgreSQL est intéressant (j'ai lu que pour les petites bases de données, MySQL est plus rapide) ? Je veux miser sur la rapidité des requêtes qui seront nombreuses, et sur la fiabilité (une erreur SQL est tout le programme foire, et les tous les joueurs sont déconnectés), et moins sur la complexité des tables. Quel est également votre avis sur MariaDB, est-ce une alternative convenable?
Désolé pour toutes ces questions, et merci de m'avoir lu jusqu'ici! :D
Oxore
aucune préférence en tre PostgreSql et mariadb
en bref j'arrive de DB2 IPOWER 2500 user en web 150 user interactif. réponse 3 nanoseconde sur AS400 natif 40 job (instance) a dispos pour le web et je n'arrive pas à saturer.
j'ai fait un bascule de site web de DB2 sur PostgreSql Sur un serveur Linux je n'ai eu aucun problème je tourne avec la 9.5 ---> en attente de validation
je me suis attelé pour tester MariaDB 10.2 j'ai retrouvé tout mes petits , toujours sur le même type de serveur , dans mes testes je n'ai pas remarqué de problème , sauf la doc , elle n'ai pas en français , mais un livre vient de sortir chez eyrolles pour aller beaucoup plus loin. pour mon compte faire de la multi-instance.....
l'un comme l'autre pour passer à un niveau supérieur il faut prendre la version entreprise.
mais pour du gratuits opensource je ne vois pas la différence .
pour moi j'avais besoin de confirmer la possibilité de basculer sur un serveur Linux un site web a grande disponibilité, et des temps de réponse honorable. il n'était pas question de rivaliser avec l'AS400,
mais de répondre a un cahier des charges . c'est du CGI c++ avec tout cela comporte templates... etc ... de plus nous voulons faire du temps réel et l'on s'attaque avec les nouvelles technologies websockets a rendre ("libwebsockets dans Linux mais il y a pendant sur win" puisque c'est un accords de l'ensemble des grands acteurs depuis janvier 2016) pour le moment avec des testes simples cela commence à fonctionner.
donc mon jugement est qu'il faut utiliser avec l'un comme avec l'autre c'est en rentrant vraiment dans le code faire vos lib d'accès et remonter avec des macros afin de n'avoir que le metier dans vos applications . pour C++ PGSQL une interface de programmation très structurer et opérationnel ou la libconnect pour Mariadb en c++ les deux en mode interactif font le même travail. en mode asynchrone avec Apache aussi .
l'un comme l'autre il vous faudra retrousser les manches. aujourd'hui condamnée MariaDB est une erreur pour preuve l'ensemble des distributions on fait le pari sur MariaDB non pas qu'il rejette Posrgresql mais on lâché Mysql et MariaDB s'en vas rejoindre les grands acteurs de base de données . pour cela regarder l'évolution 10.2 --> et allez constater les notes.
des bugs l'un comme l'autre mais n'ont attraits qu'a des chose mineurs souvent sur les betas .... de toutes façons ils y aura toujours un patch soit pour corriger soit pour améliorer.
je ne pense pas qu'il y ai un match entre les deux .
après si vous voulez travailler sur des milliards de données en pathroug ou avec des réplications peut-être si j'ose me permettre avec un Ipower qui incorpore as400 et( Linux et win qui ne sont que des carte dédier) là vous aborder un autre monde par exemple celui de la finances ou la sécurité maximum est exiger la vitesse ... et le prix aussi .....