PHP: Was ist der Schnellste Weg, die Abfrage von MySQL? Weil PDO ist quälend langsam

Ich ausführen muss, um eine einfach Abfrage.

Buchstäblich alles, was ich durchführen müssen, ist:

SELECT price, sqft, zipcode FROM homes WHERE home_id = X

Wenn ich mit PHP PDO, die ich gelesen habe, ist der empfohlene Weg, um eine Verbindung zu einer MySQL-Datenbank, erstellen Sie einfach die Verbindung dauert gemessen 610ms.

Mein code ist unten:

try {
    $conn_str = DB . ':host=' . DB_HOST . ';dbname=' . DB_NAME;
    $dbh = new PDO($conn_str, DB_USERNAME, DB_PASSWORD);
    $params = array();    
    $sql = 'SELECT price, sqft, zipcode FROM homes WHERE home_id = :home_id';
    $params[':home_id'] = X;
    $stmt = $dbh->prepare($sql);    
    $stmt->execute($params);
    $result_set = $stmt->fetchAll(PDO::FETCH_ASSOC);
    //json output  
    ob_start("ob_gzhandler");
    header('Content-type: text/javascript; charset=utf-8');
    print "{'homes' : ";
    print json_encode( $result_set );
    print '}';
    ob_end_flush();
    $dbh = null;
} catch (PDOException $e) {
    die('Unable to connect');
}

Frage: Was ist der Schnellste Weg für mich eine Verbindung zu meiner MySQL-Datenbank zum ausführen der Abfrage oben?

  • Sie haben Indexmenge in home_id? Sie sind die Verbindung über localhost? Versuchen Sie, zu verwenden, mysql_* oder mysqli_* (ie mysqli_connect, mysqli_query etc)
  • Yep, ich habe einen index auf home_id. Mein web-server auf einem anderen physischen server als meiner MySQL-Datenbank-server
  • Das ist der Hauptgrund Ihrer Probleme. Sie könnten versuchen, die Zwischenspeicherung Ihrer Daten in session/gespeicherten Dateien.
  • wenn Ihr web-server auf einer anderen physischen Maschine aus Ihrer MySQL-Datenbank, Netzwerk-Latenz ist sehr wahrscheinlich Schuldigen, auch wenn Sie sitzen direkt nebeneinander im gleichen Raum.
  • Sind Sie sicher, es ist die Bibliothek problem, nicht bestimmten server ein?
  • +1 für eine langsame Netzwerk-Verbindung zwischen dem client und dem server

InformationsquelleAutor nickb | 2010-09-04
Schreibe einen Kommentar