私はphp、mysql、zendフレームワークを使用してWebサイトを作成しています。 SQLクエリを実行しようとすると、ページ生成が約0.5秒にジャンプします。それは高すぎます。私がsqlを回すと、ページの生成は0.001になります。 私が実行するクエリの量は、実際にページ生成時間(テストした1〜10のクエリ)には影響しません。 0.5秒での滞在 私は間違っていることを理解できません。Zend FrameworkとMysql - 非常に遅い
私は、ブートストラップでSQLへの接続:
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)
{
}
}
その後、私は単純なモデル
class StandardAccessory extends Zend_DB_Table_Abstract
{
/**
* The default table name
*/
protected $_name = 'standard_accessory';
protected $_primary = 'model';
protected $_sequence = false;
}
を持っているそして最後に、私のインデックスコントローラ内部で、私はちょうどfindメソッドを実行します。
require_once APPLICATION_PATH . '/models/StandardAccessory.php';
$sa = new StandardAccessory();
$stndacc = $sa->find('abc');
すべてがこれにかかる時間が長すぎます。助言がありますか?
ありがとうございます!
BENCHMARKのクエリは1行を返します。そうでない場合はmysqlがエラーを返します:ERROR 1242(21000):副問合せが1行以上返します。 –
@レーヨン・マーティンズ:そうですね、私はOPがテーブルの主キーに対して制限している 'find()'を使っているので、私は仮定します。したがって、単一の行(または 'abc'が見つからない場合はゼロ行)を返すようにする必要があります。 –
メタデータキャッシュの最初のリンクが無効になっています。私はそれがこれと仮定しています:https://framework.zend.com/manual/1.10/en/zend.db.table.html#zend.db.table。 metadata.caching –