Ik zit met het volgende, ik heb 2 tabellen : een met links en de andere met clicks. Gebruikers genereren links, welke mensen aan kunnen klikken, deze clicks worden in de tabel clicks gezet.
De clicks bevat enkele miljoenen rijen, en nu wil ik voor elke user het totale aantal clicks van al zijn links op vragen.
Nu had ik al een query : SELECT COUNT(*) FROM clicks WHERE link_id = ANY (SELECT id FROM `links` WHERE `user_id` = 1)
Enkel gaat deze al de miljoenen rijen af (duurt erg lang), dus wil ik het eingelijk andersom doen.
SELECT id FROM `links` WHERE `user_id` = 1 komen 20k aan rijen, en per rij wil ik dus een count van het aantal clicks per link, dit is veel sneller.
Als ik even heel vies met SELECT COUNT(*) FROM clicks WHERE link_id = .... alle 20k aan link_id's ... een query maak is deze dus zo klaar, alleen krijg ik het niet voor elkaar om dat netjes te doen.
Iemand een idee hoe ik dit voor elkaar krijg ?
De clicks bevat enkele miljoenen rijen, en nu wil ik voor elke user het totale aantal clicks van al zijn links op vragen.
Nu had ik al een query : SELECT COUNT(*) FROM clicks WHERE link_id = ANY (SELECT id FROM `links` WHERE `user_id` = 1)
Enkel gaat deze al de miljoenen rijen af (duurt erg lang), dus wil ik het eingelijk andersom doen.
SELECT id FROM `links` WHERE `user_id` = 1 komen 20k aan rijen, en per rij wil ik dus een count van het aantal clicks per link, dit is veel sneller.
Als ik even heel vies met SELECT COUNT(*) FROM clicks WHERE link_id = .... alle 20k aan link_id's ... een query maak is deze dus zo klaar, alleen krijg ik het niet voor elkaar om dat netjes te doen.
Iemand een idee hoe ik dit voor elkaar krijg ?