Effettivamente hai ragione. Quindi, utilizzando la struttura proposta da FriendFeed, con indici esterni, potrei effettuare una query del genere:Fatico a comprendere perchè vuoi usare una IN anzichè un normalissimo JOIN.
Non sarebbe comunque più produttivo creare una tabella con tutte le attività da visualizzare (magari con una limitazione a massimo 100 per utente) piuttosto che dover eseguire una query di questo tipo.codice:SELECT e.body FROM indice_utenti as iu INNER JOIN followers as f ON f.utente_seguito = iu.user_id INNER JOIN entities as e ON e.entitiy_id = iu.entity_id WHERE f.utente_che_segue = 'id dell'utente che richiede il feed' ORDER BY e.timestamp DESC LIMIT 0, 10
Quello che intendo dire è che i vantaggi degli indici esterni, in questo modo, diventano poi dei svantaggi. A questo punto basterebbe inserire un campo indice user_id nella tabella entities e joinare con i follower solo ed esclusivamente quella tabella.
Mamma mia HAHAHAHA
![]()
![]()
![]()
![]()
Visto che sono in fase di sviluppo vorrei creare i presupposti per eventuali miglioramenti e aggiornamenti. Se una cosa la devi fare, tanto vale che la fai al meglio possibile, per farla durare il più possibile, no?La versione breve è: vuoi fare un sistema per un miliardo di utenti?
Poi credo anche io che a questo punto stia diventando più una sorta di ossessione questo discorso. Ma è formativo anche discutere, credo, non solo trovare soluzioni.

Rispondi quotando