Le plus efficace c'est encore d'utiliser un cache de données.
Par exemple PEAR::Cache_Lite est performant et ne nécessite pas de config particulière côté serveur (contrairement à Memcache ou APC).
Bien sûr c'est à composer, si tu fais un classement page par page par exemple il faudra voir si tu veux gérer un cache global, ou faire du cache page par page, auquel cas il faudra un appel du genre $cache->get('classement-'.$page) Par exemple PEAR::Cache_Lite est performant et ne nécessite pas de config particulière côté serveur (contrairement à Memcache ou APC).
Code PHP :
<?php
$cache = new Cache_Lite(array('cacheDir'=>'/path/to/cacheDir/', 'lifeTime'=>7200 /* 2h */));
if ( ! ($classement = $cache->get('classement')) ) {
// Il n'y a rien dans le cache
// ... Faire ici toutes les requêtes, les tris, les calculs, etc...
// obtenir un tableau associatif avec tout le classement
// Mettre en cache les données
$cache->save($classement);
}
// Afficher les données du tableau $classement :)
Quelques benchmarks sur cette page, et si tu lis la page suivante tu découvriras avec délice la classe Cache_Lite_Function qui pourrait sauver des arbres en amazonie si elle était plus utilisée :lol: