Relations - Réseau d'amis
Résolu/Fermé
JooS
Messages postés
2465
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
-
10 août 2012 à 13:06
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 10 août 2012 à 18:20
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 10 août 2012 à 18:20
A voir également:
- Relations - Réseau d'amis
- Entrer les informations d'identification reseau - Guide
- Imprimante reseau - Guide
- Paul a publié une annonce dans un groupe sur un réseau social. qui peut voir son annonce - Forum Réseau
- Partage reseau - Guide
- Réseau orange non détecté - Forum Réseau
1 réponse
blux
Messages postés
25976
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 avril 2024
3 287
10 août 2012 à 15:06
10 août 2012 à 15:06
Salut,
ta deuxième solution impose un balayage exhaustif de toute la table combiné à une analyse de la chaine qui contient les id lorsque l'on veut savoir qui est ami avec qui, c'est très lourd.
La première solution permet de ne lire que les lignes que l'on cherche (grâce aux index que tu ne manqueras pas de mettre). C'est d'ailleurs pour ça que c'est une forme normale.
Le nombre de tuple importe peu dans une base...
ta deuxième solution impose un balayage exhaustif de toute la table combiné à une analyse de la chaine qui contient les id lorsque l'on veut savoir qui est ami avec qui, c'est très lourd.
La première solution permet de ne lire que les lignes que l'on cherche (grâce aux index que tu ne manqueras pas de mettre). C'est d'ailleurs pour ça que c'est une forme normale.
Le nombre de tuple importe peu dans une base...
10 août 2012 à 17:54
On aura un accès direct a la liste d'amis, par exemple, lorsque l'utilisateur se connecte, on mets directement ses infos ainsi que le contenu du champs "friends" dans une variable de SESSION ...
Et a chaque fois qu'on aura besoin de vérifier si un utilisateur est ami avec un autre, il suffit d'accéder a la SESSION directement, ...
A chaque fois qu'il y'aura une mise a jour (ajout ou suppression d'amis), on mettra a jour les variable globales.
Exemple : 2,5484,624,7541,954
Signifiera que les utilisateurs dont l'id est 2, 5484, 624, 7541, 954 sont amis avec l'utilisateur en cours ...
C'est tirer par les cheveux, mais je pense que c'est plus performant que de parcourir toute la table, surtout si la table est surchargé, parce que 10 millions de tuples, ça affecte quand même le temps d'exécution ...
10 août 2012 à 18:04
mea culpa, j'ai mal lu la question de départ.
Il n'en demeure pas moins que tu vas vite voir les limites de traitement des chaines comportant des milliers de caractères : lenteur de traitement et surtout lenteur de mise à jour...
Car lorsque tu vas augmenter la taille de la chaine d'amis, ton SGBD va devoir trouver un nouvel emplacement pour la stocker et supprimer l'ancienne, avec toute la gestion d'espace à faire.
Le plus simple est quand même de laisser les mises à jour (création/suppression) de tuples par le SGBD, il est optimisé pour...
10 août 2012 à 18:20
Merci :) !