5

webgrindとxdebugを使用して、サイトのパフォーマンスを測定しました。ページの読み込み時間の85%は、関数php :: PDO-> __ Construct(約1秒)に費やされます...

これは受け入れがたい。どういうわけかこの機能を最適化できますか?(キャッシング、mysql構成など)

私はphp、mysql、codeigniterをredbeanで使用しています。redbeanはそのpdoコンストラクト関数を使用します。

これが関数のソースコードです

/** 
 * Establishes a connection to the database using PHP PDO 
 * functionality. If a connection has already been established this 
 * method will simply return directly. This method also turns on 
 * UTF8 for the database and PDO-ERRMODE-EXCEPTION as well as 
 * PDO-FETCH-ASSOC. 
 * 
 * @return void 
 */ 
public function connect() { 
   if ($this->isConnected) return; 
    $user = $this->connectInfo['user']; 
    $pass = $this->connectInfo['pass']; 
    //PDO::MYSQL_ATTR_INIT_COMMAND 
     $this->pdo = new PDO( 
               $this->dsn, 
               $user, 
               $pass, 
               array(1002 => 'SET NAMES utf8', 
                          PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 
                          PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 

               ) 
     ); 
     $this->pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); 
     $this->isConnected = true; 
 } 
4

1 に答える 1

8

解決策は非常に簡単です...

ローカルホストに接続するPDO->1秒

127.0.0.1に接続するPDO->50ミリ秒..

なぜ私に尋ねないでください...ipv6接続を試して待つことと関係があるようです、そして古き良きipv4にフォールバックします...ipv4アドレスはipv6を試みません...

于 2013-03-01T16:49:07.217 に答える