Partage
  • Partager sur Facebook
  • Partager sur Twitter

Limite d'une base de données

Sujet résolu
    6 décembre 2010 à 16:19:29

    Bonjour,

    j'ai ici une question dont la réponse pourrait être évidente pour certains, mais ça ne l'est pas pour moi.
    Alors voilà, d'ici peu je vais avoir besoin de créer un système d'amis sur un forum. Ma question est:
    Que dois-je faire si il y a beaucoup d'entrées sur cette base?

    Exemple:

    Imaginons qu'il y ait 50.000 membres qui utilisent ce système. Je vais créer une table qui sera composée seulement de l'id de l'utilisateur (en index) et de l'id de l'ami en question. C'est-à-dire que si par exemple un membre a 200 amis, il va y avoir 200 lignes rien qu'à lui dans la BDD, et l'id de ses 200 amis seront présents.
    Donc cela pourrait vouloir dire que si par exemple il y a une moyenne de 30 amis par personnes, si j'ai 50.000 utilisateurs cela fait 1.500.000 d'entrées dans ma BDD.

    Cela pose t-il un réel problème au niveau du chargement? Je ne connais pas les capacités de rapidité d'une base de données.

    J'avais pensé à une solution qui consistait en créer une nouvelle table tous les 5.000 utilisateurs, pour alléger les requêtes sur les tables mais est-ce une solution valable?
    Ce n'est peut-être pas le bon système d'amis sur lequel je m'engage, en connaissez-vous un autre?

    Merci d'avance!

    Gaultier
    • Partager sur Facebook
    • Partager sur Twitter
      6 décembre 2010 à 17:49:55

      ton systeme est bon, mais il faut prendre en compte que tu ne vas pas faire des requetes toutes les deux secondes dessus,
      • Partager sur Facebook
      • Partager sur Twitter
        6 décembre 2010 à 19:57:14

        Et bien justement, c'est ce que je croyais. Pour moi j'allais faire une requête toutes les deux secondes.
        Imaginons que je veuille afficher, comme facebook par exemple, 20 ou 30 amis dans un coin de la page sur chacune des pages.
        Je ne peux pas me permettre de stocker ces amis dans des sessions, sinon ça boufferait beaucoup trop de ressources sur le serveur.

        C'est pour ça, dans ma tête, il aurait fallu faire une requête à chaque fois. Comment faire pour que ça ne soit pas le cas?

        PS: Merci pour ta réponse!
        • Partager sur Facebook
        • Partager sur Twitter
          6 décembre 2010 à 20:32:05

          Oui, mais tu pars aussi sur 50.000 personnes qui est déjà énormes !!
          Facebook utilise des systèmes de cache si c'est ca que tu veux savoir.
          • Partager sur Facebook
          • Partager sur Twitter
            6 décembre 2010 à 20:40:18

            Je te remercie pour tes réponses, elles m'ont bien aidées :)
            • Partager sur Facebook
            • Partager sur Twitter
              7 décembre 2010 à 14:53:54

              > Cela pose t-il un réel problème au niveau du chargement?

              Non, tant que ça tient en RAM.

              Tu as une table qui contient id_user_1 et id_user_2 ; la clé primaire est donc (id_user_1,id_user_2) et tu as un index unique sur (id_user_2,id_user_1).
              • Partager sur Facebook
              • Partager sur Twitter

              Limite d'une base de données

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown