IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

mongodb une bonne solution ?


Sujet :

Symfony PHP

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut mongodb une bonne solution ?
    Bonjour,

    Je m'intéresse actuellement à mongodb et j'aimerai avoir vos retours sur celui-ci.

    En effet je dois re-coder un site de rencontre en Symfony2 (Recherche users, chat 1n1, chat rooms, album photo, forums, etc.), le site actuel étant en procédural et est devenu inmaintenable, je vais donc tout refaire à zéro avec l'ami SF2.

    Vous allez me dire qu'est que ça a avoir avec mongodb ? Et bien le site actuel est souvent down à cause d'une forte charge de la part de mysql. J'ai donc commencé à chercher des solutions et je suis tombé sur d'innombrables articles et conférences faisant l'éloge des base noSQL pour des sites à fort traffic.

    Bien sur il y a des avantages et des incovénients à mysql et mongodb. Je ne crache pas sur mysql, mais pour le projet que je suis entrain d’entreprendre, il a montré ses limites au niveau de la rapidité. Je me suis donc penché sur mongodb étant donné que SF2 le supporte. Je chipote encore un peu avec la console et Genghis et même si la présentation JSON est plus barbare que les tables de mysql je trouve cela plus agréable. Je suis peut être maso...

    Ceci étant je n'ai pas vraiment le droit à l’erreur quant au choix des technologies pour ce site. Donc j'aimerai avoir vos retours sur le couple mongodb + symfony2 et mongodb en général.

    Je n'ai pas de questions précises donc si vous avez un peu de temps pour exposer votre points de vu qu'il soit négatif ou non sur mongodb, sur mongodb+symfony ou sur les bases noSQL. Et aussi des remarques sur la sécurité. Il n'y a pas de failles SQL, mais est ce qu'il y a des failles noSQL ?

    Et si vous aviez un petit tutoriel sur sf2+mongodb car j'imagine qu'il y a des logiques qui changent non ?

    Merci pour vos réponses futures

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    Bonjour,

    le site actuel est souvent down à cause d'une forte charge de la part de mysql
    Votre site pourrai s'apparenter a celui ci non ? et je ne voie pas mysql ramer !
    il faut déjà voir l'architecture des tables, les requetes sql et surtout l'hébergement.

    Tout réécrire en "propre" c'est très très bien, mais avec le choix de Symfony2, le site sera normalement plus lent(pas taper ! ai mis "normalement").

    Pour mongo, si votre projet est fait avec 20-40 tables imbriquées, mongo ne devrait pas être pour vous. Mais il est possible d'utiliser MongoDB, Redis ... pour une partie du site (photo,chat,sessions,cache...)

    le forum nosql :
    http://www.developpez.net/forums/f17...donnees/nosql/

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    il faut déjà voir l'architecture des tables, les requetes sql et surtout l'hébergement.
    C'est ce que j'allais répondre. donc j'insiste

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Par défaut
    Salut,

    Et si vous aviez un petit tutoriel sur sf2+mongodb car j'imagine qu'il y a des logiques qui changent non ?
    Tu peux déjà aller voir la doc de "Doctrine mongodb odm" pour comprendre ce qu'il y a de différent:
    http://docs.doctrine-project.org/pro...odm/en/latest/

    Ensuite comme les autres l'ont dit je pense qu'un système de mise en cache tel Redis peut être une solution.
    Le chat, les posts récents ainsi que les utilisateurs dont le profil est le plus souvent consulté pourraient être mis en cache avec Redis.

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Merci pour vos réponses.

    Votre site pourrai s'apparenter a celui ci non ? et je ne voie pas mysql ramer !
    il faut déjà voir l'architecture des tables, les requetes sql et surtout l'hébergement.
    Comparer un forum et un site de rencontre avec forum, newsfeed (générale et individuel à chaque membre), notifications, chat (ajax), message 1n1 (ajax)(~3 000 000 /trim.), statistique visiteurs, etc. Donc non je pense pas qu'il y a de comparaison possible.

    Pour mongo, si votre projet est fait avec 20-40 tables imbriquées, mongo ne devrait pas être pour vous
    Pourquoi cela ?
    actuellement voila mes tables (+/- j'ai pas l'accès sous la main je ne suis pas chez moi) :
    users
    forum post
    forum topic
    visitors
    chat
    messages
    friends
    notifications
    newsfeed
    flash (clien d'oiel || poke)
    Countries
    Cities

    Donc entre 12 et 15 tables + les 2-3 tables admin, mais qui ne sont forcément utilisé que par moi.

    Voila, après quand je vois les inconvénients de mongodb par rapport à MYSQL les "experts" citent deux points :
    - Perte de donné possible
    M'en fou je ne suis pas une banque, donc une visite ne peut pas être prise compte ou autre ce n'est pas un drame. Ca fait chier, mais voila.

    - Taille de la base de donnée
    Je préfère payer un DD plus gros, qu'un plus gros CPU pour Mysql

    Et à cela j'en rajouterai un troisième de mon point de vu qui doit être la communauté mongodb de sf2. J'ai peur de ne pas trouver de l'aide s'il y a trop de différence entre coder en entity et coder en document.

    Après j'ai aussi réfléchi à séparer certain module si j'ose dire. Par exemple les users en mysql et le chat en mongodb par exemple. Mais je ne sais pas si sf2 supporte cela de jouer avec une BDD mysql et une Mongo pour tel ou tel bundle.

    Merci de vos réponses.

  6. #6
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Je suis en train d'essayer de lancer un projet mongodb, mais bien plus simple(un ou deux tables).

    Par contre, dans ton cas, la limite de mysql ne me parait pas évidente. 90% de tes actions sont pour moi de la lecture de BDD non ?

    As tu mis en place un modèle avec un mysql maitre et plusieurs esclaves ? Tu écris sur le maitre et lit sur les esclaves qui sont en réplication.

    Ca peut résoudre ton problème non ?

    Etant donné que l'on a un entity manager et un data manager, je epnse qu'il peuvent interagir ensemble, donc tu pourrais garder une partie en mysql et une autre (chat par exemple) en mongoDB.

    Plus que la liste des tables, je pense que ca serait intéressant d'avoir une idée de la volumétrie de celles ci. Voir de la part de mise a jour sur les tables... user et friend doit etre moins mis a jour que flash par exemple.

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Difficile à dire. Il y'a beaucoup d'insert/update aussi:
    insert :
    - Qui visite tel ou tel profil ?
    updates :
    - Last login
    - Notifications lu ou non

    Mais oui c'est surtout la lecture newsfeed et les messages à mon avis qui suce.

    Et aucune idée de comment faire un server master mysql et des slaves en répliquant le patron. Je galère deja assez pour gérer un serveur

    Mais c'est étrange que vous êtes tous pour garder mysql quitte a augmenter les coûts.

    Pour la petite histoire, j'ai fait un test vendredi ou j'ai ajouté 500 lignes en SF2 une fois en mysql et l'autre en mongodb. J'ai juste été sur le cul.
    MongoDB => 9.64 sec.
    Mysql => 44.40 sec.

    Donc presque 5x plus rapide (en arrondissant grossièrement). Je vous avoue que cette base me séduit de plus en plus. J'ai encore beaucoup d'interrogation que je vais éclaircir sur le forum noSQL.

Discussions similaires

  1. [WSS] Groupes de domaine : une bonne solution ?
    Par nonoxp dans le forum Installation
    Réponses: 0
    Dernier message: 09/06/2009, 19h15
  2. [Station d'accueil Disques Dur] Une bonne solution ?
    Par Tellen dans le forum Périphériques
    Réponses: 4
    Dernier message: 04/02/2009, 14h54
  3. je cherche une bonne solution de rafraichissement d'une BD
    Par dj_techno dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/12/2008, 11h41
  4. Dirty Checking hibernate, une bonne solution ?
    Par ZeRevo dans le forum Hibernate
    Réponses: 1
    Dernier message: 24/08/2008, 14h53
  5. SPRING+STRUTS+HIBERNATE. Une bonne solution ?
    Par ollivier dans le forum Struts 1
    Réponses: 9
    Dernier message: 10/04/2006, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo