Je crée un site web en utilisant php, mysql et zend framework. Lorsque j'essaie d'exécuter une requête sql, la génération de page saute à environ 0,5 seconde. C'est trop élevé. Si je tourne de sql, la génération de page est 0.001. La quantité de requêtes que j'exécute n'affecte pas vraiment le temps de génération de la page (1 à 10 requêtes testées). Reste à 0,5 seconde Je n'arrive pas à comprendre ce que je fais de mal.Zend Framework et Mysql - très lent
je me connecter à SQL bootstrap:
protected function _initDatabase()
{
try
{
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
$db = Zend_Db::factory($config -> database);
Zend_DB_Table_Abstract::setDefaultAdapter($db);
}
catch (Zend_Db_Exception $e)
{
}
}
, j'ai un modèle simple
class StandardAccessory extends Zend_DB_Table_Abstract
{
/**
* The default table name
*/
protected $_name = 'standard_accessory';
protected $_primary = 'model';
protected $_sequence = false;
}
Et enfin, dans mon contrôleur d'index, je lance simplement la méthode de recherche.
require_once APPLICATION_PATH . '/models/StandardAccessory.php';
$sa = new StandardAccessory();
$stndacc = $sa->find('abc');
Tout cela prend ~ 0,5 seconde, ce qui est beaucoup trop long. Aucune suggestion?
Merci!
Et la question pour BENCHMARK devrait retourner 1 rangée, autrement mysql se plaignent: ERREUR 1242 (21000): La sous-requête renvoie plus de 1 rangée. –
@Leonel Martins: Bon, je suppose que le PO utilise 'find()' qu'il restreint à la clé primaire de la table. Il devrait donc être garanti de renvoyer une seule ligne (ou zéro rangée, si 'abc' n'est pas trouvé). –
Le premier lien sur la mise en cache des métadonnées est maintenant invalide, je suppose que c'était le suivant: https://framework.zend.com/manual/1.10/fr/zend.db.table.html#zend.db.table. metadata.caching –