Évidemment, autant de requêtes prendront beaucoup de mémoire. Il existe une "astuce" pour optimiser plusieurs requêtes qui se ressemblent - instructions préparées .
Vous avez 2 tables qui semblent avoir besoin d'une join (si vous n'en utilisez pas).
Ensuite, vous pouvez utiliser une mise en cache si les données ne sont pas mises à jour très souvent.
Il y a beaucoup de choses qui pourraient être optimisées...