Като се има предвид, че така или иначе съхранявате идентификатор в сесията, сесията има най-голям смисъл. Извършването на session_start() зарежда информацията за вашата сесия, така че дали сте заредили 1 или 10 елемента след това е до голяма степен без значение (освен ако не са наистина големи, но това ще бъде проблем във всеки случай).
Така че придържайте се към сесията.
Ако наистина се притеснявате за скоростта, използвайте кеш в паметта като APC или memcache. Безпокойството за скоростта на 10 елемента от файловата система или базата данни е разсейващо. Разликата ще бъде толкова минимална, че ще бъде ирелевантна.
Забележка:горното предполага две неща:
- Заявката е ефективна (извличането на 10 реда от 100k трябва да бъде изпълнимо за по-малко от 0,1 секунди); и
- Правите една заявка, а не 10.