(15-12-2010, 03:34 PM)NicoMSEvent a écrit : J'ai une requete performante pour retrouver l'info que je cherche. J'ai 20 tuiles a retrouver (autour de la position du personnage, j'utilise un masque d'une certaine forme pour me faciliter la vie). Mon total est +- 1.000.000 tuiles pour la carte complète. Le problème n'est pas ici, en une requete, j'ai toutes mes tuiles.
Ah ! je n'avais pas compris que tu chargeais les tuiles autour du personnage... je pensais qu'il s'agissait de groupe définis, en arrivant au bout, tu passais au groupe suivant.
Effectivement, comme ça, une mise en cache est plus délicate (mais pas impossible).
Si ton problème est déjà identifié au niveau du chargement d'un PNJ, et du chargement en cascade, soit, tu reprends la solution de mon histoire de logement, soit (plus intelligent, mais pas forcément plus facile) vérifier déjà que si tu charges le PNJ seul (dans une page de test) il charge ou non toutes les quêtes qui vont avec, et ensuite trouver un moyen de conditionner le chargement des quêtes lorsque tu en a vraiment besoin...
J'ai un bout de code comme ça, je le retrouve et je le donne ici...
Voilà comment je fonctionne en temps normale pour conditionner le chargement en cascade :
#
<?php
/**
* Description of App_Model_Region
*
* @author jeckel
*/
class App_Model_Region extends Lib_Model_Abstract
{
/**
* List of sub regions
* @var array
*/
protected $_childs;
/**
* Load zones includes in the current zone
* @return App_Model_Region
*/
protected function _loadChilds()
{
$this->_childs = foo(); // ici, chargement de ma cascade
return $this;
} // function _loadChilds
/**
* return list of sub zones
* @return array
*/
public function getChilds()
{
if (is_null($this->_childs))
{
$this->_loadChilds(); // Le chargement n'est déclenché que lorsque j'ai besoin des données
} // if
return $this->_childs;
} // function getChilds
} // class App_Model_Region
A partir de ça, tu peux rajouter une fonction qui initialise la propriété _childs ... dés qu'elle est différente de null le chargement se retrouve désactivé