Ich benutzte Webgrind und Xdebug, um meine Website-Leistung zu messen. 85% der Ladezeit für die Funktion php :: PDO genommen -> __ construct (etwa 1 Sekunde) ...beschleunigen php :: PDO -> __ Konstrukt
dies ist nicht akzeptabel. Kann ich diese Funktion irgendwie optimieren? (Caching, MySQL-Konfiguration usw.)
Ich verwende PHP, MySQL und Codeigniter mit Redbean. redbean Anwendungen, die Funktion pdo konstruieren ...
hier ist die Funktion Quellcode
/**
* 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;
}
Wenn das inakzeptabel ist, dann denke darüber nach, warum du __construct so oft anrufst und es von dort aus durchführst. –
[Google ist großartig, Mann. nahm mich 2 Sekunden] (http://stackoverflow.com/questions/9800577/why-is-constructing-pdo-connection-slow) –
BTW, Zeichensatz sollte in DSN gesetzt werden –