Users table
user_id
pic_url
name
friends table
auto_id
userid
friendid
status
actions table
auto_id
userid
type
subject
body
datetime
Je veux faire un flux d'ami des thats des mises à jour montre des mises à jour, pourrait être un billet de blog, changement d'état, quoi que ce soit, mais devrait ne montrer que ceux qui sont d'un ami de l'utilisateur connectéont besoin d'aide avec MySQL rejoint
Voici ce que j'ai trouvé, mais ma base d'utilisateurs est très grande, donc la performance est un must, y at-il une meilleure façon de le faire? Montrez-moi s'il vous plaît
SELECT u.user_id, u.pic_url, u.name, a.auto_id, a.userid, a.type, a.subject, a.body, a.datetime
FROM actions AS a
LEFT JOIN users AS u ON u.auto_id=a.userid
LEFT JOIN friends AS f ON f.userid=a.userid
WHERE f.friendid=1 //1 would be my user ID
AND f.status=active
S'il vous plaît, aidez, je ne pense pas que ce soit correct. Disons qu'il y a 50 000 utilisateurs et mon ID utilisateur est # 1 et je suis ami avec 20 000 utilisateurs, il devrait retourner toutes les entrées dans la table des actions qui est publié par un utilisateur avec qui je suis ami, aussi besoin de modifier pour inclure actions de moi-même
J'ai entendu des gens parler de l'utilisation d'une sorte de table de hachage pour des recherches plus rapides serait quelque chose comme ça ici possible?
Merci pour toute aide
Plus d'informations sur les index http://www.alistapart.com/articles/indexing-the -web-its-not-just-googles-business/ –
Je devrais mentionner que ce sera mysql, Y at-il une façon particulière d'ajouter un index de hachage ou un index régulier est-il la même chose? – JasonDavis
voir la note que j'ai ajoutée. Je n'aurais probablement pas dû entrer dans autant de détails. La différence de performance entre les indices BTREE et HASH est susceptible d'être beaucoup plus faible que la différence de performance entre BTREE et aucun indice. –