14-08-2011, 11:29 AM
(11-08-2011, 03:52 PM)Akira777 a écrit : Difficile à dire :
Un bench entre MySQL, PostgreSQL et SQLite : http://www.sqlite.org/speed.html
Et maintenant entre MySQL et MongoDB : http://obvioushints.blogspot.com/2009/07...mysql.html
D'autre part, j'ai pu lire un bench entre CouchDB et MongoDB, CouchDB en sortait 5 fois moins rapide en écrite et 10 fois moins rapide en lecture que MongoDB.
Entre MySQL et MongoDB, en moyenne, MongoDB est 2 fois plus rapide pour manipuler entre 2Mo et 10Gb, l'inverse quand il s'agit de plus de 10Gb.
Permet moi de fortement nuancer tes propros concernnant les benchs entre CouchDB et MongoDB.
MongoDB est peut-être bien plus rapide pour lire et écrire que CouchDB (encore que, j'aimerais bien voir le benchmark qui dit ça), mais la force de CouchDB c'est sur les accès concurrentiel, ou le no row lock.
Sous CouchDB si 10000 de personnes essayent de modifier EXACTEMENT au même moment la même ressource ça ne prendra pas plus de temps que de créer 10000 fois cette ressource de 0.
Sous MongoDB ça sera beaucoup plus long, car il va locker la ressource et donc empêcher les autres de travailler dessus, donc en plus qu'un cas de ce type va être beaucoup plus long sous MongoDB il va occasionner beaucoup plus de charge sur MongoDB car va devoir mettre les requêtes en attente en mémoire et gérer tout le système de queue à ce sujet.
Même chose si 1 personne modifie une ressource et EXACTEMENT au même moment quelqu'un essaye d'y accéder et bien sous MongoDB celui qui lit sera bloqué (ou celui qui écrit) tant que l'autre n'a pas terminé, sous CouchDB aucun ne sera bloqué, les deux auront l'information délivré en même temps.
Autre chose de sympa pour CouchDB (une des autres choses, il y en a pas mal) c'est que tu peux requêter la base en Javascript oui (sans aucun plugin), mais tu peux faire encore mieux, requêter la base avec ton navigateur.
C'est à dire ? Admettons que tu stocks tes images en base de données, ou tes fichiers minifiés css/js, tu pourras mettre dans ta page HTML quelque chose de ce genre : <img src="http://termite.bouh.org:5984/untitled-game/7b38170f13c6e16a25ebe96e351ba1a8/attachment" />
Donc ton navigateur va directement interroger la base, car elle fonctionne tout en HTTP sur du principe REST.
Note :
Si vous voulez tester CouchDB vous pouvez le faire sur http://termite.bouh.org:5984/_utils/index.html
Mais soyez cool envers les autres qui vont le tester, donc créez une base à votre nom et ne touchez pas à celle des autres. N'y mettez non plus pas d'informations sensible car je ne veux pas que vous touchiez à la gestion de droits non plus