Wenn man bedenkt, dass Sie sowieso eine ID in der Sitzung speichern, ist die Sitzung am sinnvollsten. Wenn Sie ein session_start() ausführen, werden Ihre Sitzungsinformationen geladen, sodass es weitgehend irrelevant ist, ob Sie danach 1 oder 10 Elemente geladen haben (es sei denn, sie sind wirklich groß, aber das wird in jedem Fall ein Problem).
Bleiben Sie also bei der Sitzung.
Wenn Sie sich wirklich Sorgen um die Geschwindigkeit machen, verwenden Sie einen In-Memory-Cache wie APC oder Memcache. Sich Gedanken über die Geschwindigkeit für 10 Elemente aus dem Dateisystem oder der Datenbank zu machen, ist eine Ablenkung. Der Unterschied wird so minimal sein, dass er irrelevant ist.
Hinweis:Obiges setzt zwei Dinge voraus:
- Die Abfrage ist performant (das Abrufen von 10 Zeilen aus 100.000 sollte in weniger als 0,1 Sekunden machbar sein); und
- Du machst eine Abfrage, nicht 10.