Bonjour à tous,
Dans l'optique d'une refonte total d'une plateforme (importante) existante, j'étudie actuellement mongoDB pour potentiellement l'utilisé combiné à MySQL (la partie relationnel me semble indispensable).
Le problème que nous avons aujourd'hui une BDD MySQL qui est souvent le goulot d'étranglement. Certaines tables contiennent 100 000 000 d'enregistrement voir plus, et les requêtes pour traiter ces données deviennent bien trop longue ! (on compte parfois en heure...)
Outre le fait de totalement revoir la structure de la BDD, ainsi que le coté hardware (en mettant en place un cluster SQL), je souhaite également étudier le NoSQL, qui me semblait adapté pour remplacer ces tables. Pour résumé, c'est tables qui stocks une visite liée à un utilisateur et à un compte, le tout daté + quelques autres infos.
Du coup, je me suis lancé dans des tests, en me basant sur ca :
https://github.com/webcaetano/mongo-mysql
Sur ces tests, on voit que MySQL est plus performant que Mongo. Rien d'étonnant puisqu'en SQL il fait un JOIN, la ou en NoSQL, il boucle autant de fois qu'il y'a d'enregistrement dans la première table.
J'ai donc revu ce test moi même :
J'ai donc un document type de ce genre (données générées aléatoirement) :
Code :
- {
- "_id" : { "$oid" : "56669929548e2b4105ca4572" },
- "player" : "Alicia Goyette MD",
- "email" : "Clarabelle@llewellyn.co.uk",
- "score" : 222,
- "team" : 480383,
- "date" : { "$date" : "2014-11-07T22:47:37.000+0000" }
- }
|
avec 10 millions d'enregistrements.
et de l'autre coté une table équivalente en MySQL.
En MySQL, j'effectue la requête suivante :
Code :
- SELECT player, score FROM test WHERE score >= 800
|
qui s'execute en 5 089ms
En mongo, j'ai ca :
Code :
- db.test.find({score:{$gte : 800}})
|
qui s'execute en 27 189ms !!!
Le NoSQL, dans ces conditions, n'est-il pas censé être plus performant ?
J'ai manqué quelque chose ?
NB : test effectué sur un OVH "VPS SSD 3", linux, debian, mongo 3.2 RC6
Merci pour votre aide.
Message édité par energiez le 09-12-2015 à 10:51:03
---------------
Mon feed-back - tt.mereville.free.fr