Verwenden Sie Ihren ersten Vorschlag. Der mit Offsets. Dies ist die "Standard"-Methode für die Paginierung. Es wäre keine gute Idee, die gesamte Ergebnismenge in die Sitzung zu bringen, da jeder Benutzer seine eigene private Kopie der Daten hätte. Wenn Sie auf Leistungsprobleme stoßen, können Sie jederzeit Caching (Memcache) hinzufügen, was allen Benutzern zugute kommt, die auf die Daten zugreifen.
MySQL führt Ihre Daten immer auf die gleiche Weise aus. Die einzige Möglichkeit, dass ein Datensatz von Seite 1 auf Seite 2 erscheint, ist, wenn ein neuer Datensatz eingefügt wurde, während der Benutzer von Seite 1 zu Seite 2 navigiert. Mit anderen Worten:Sie müssen sich keine Sorgen machen.
Eine Ressource ist im Fall von MySQL eine Art Zeiger, der auf die Ergebnismenge zeigt. Sie können das dann manipulieren (Daten zeilenweise abrufen, die Anzahl der zurückgegebenen Zeilen zählen usw.). Es ist nicht global.