Si
Potresti mettere in sessione il risultato di una query che prende tutto e poi eseguire la paginazione sull'array in sessione, non so in termini di velocità quanto ci guadagni, fa una prova e vedi.3) vorrei far in modo di evitare di rieseguire la query ogni volta che clicco su una pagina successiva e/o precedente. Cioè, la paginazione dovrebbe interagire con i dati estrapolati nella prima esecuzione, senza dove ricaricare e rieseguire il tutto.
E' possibile?
...
L'idea è che dovrebbe funzionare così:
- arriva la richiesta per i dati
- lo script verifica se esiste in sessione una entry con i risultati di una precedente query corrispondente
-- se il risultato esiste lo prende, vede che pagina vuoi e seleziona i record giusti da restituire
-- se il risultato non esiste esegue la query e genera la entry in sessione e fa quanto detto sopra
Questo ovviamente se la query è senza WHERE, nel caso il WHERE sia richiesto la cosa si complica, dovresti verificare e se serve inserire in sessione una entry per i risultati di ogni valore del WHERE che arriva allo script.
In questo caso ti conviene cercare ed integrare qualche sistema di caching già fatto e testato, che sicuramente sarà più efficiente di uno improvvisato.