Considérant que vous stockez de toute façon un ID dans la session, la session a le plus de sens. Faire un session_start() charge vos informations de session, donc que vous ayez chargé 1 ou 10 éléments après cela n'est en grande partie pas pertinent (à moins qu'ils ne soient vraiment volumineux, mais ce sera un problème dans tous les cas).
Alors restez avec la session.
Si vous êtes vraiment préoccupé par la vitesse, utilisez un cache en mémoire comme APC ou Memcache. S'inquiéter de la vitesse pour 10 éléments du système de fichiers ou de la base de données est une distraction. La différence sera si minime qu'elle ne sera pas pertinente.
Remarque :ce qui précède suppose deux éléments :
- La requête est performante (la récupération de 10 lignes sur 100 000 lignes devrait être réalisable en moins de 0,1 seconde) ; et
- Vous effectuez une requête et non 10.