Nach Umstieg von MySQL PD auf MySQLi OO

Johnnii360

Erfahrenes Mitglied
Servus zusammen!

Ich bin echt hier am verzweifeln. Ich versuche schon seit Tagen die Performanceprobleme meiner Scripts in den Griff zubekommen.

Vor etwa drei Wochen bin ich von einem Webspace bei Greatnet auf einen V-Server bei Strato umgestiegen. Als OS kommt Windows Server 2012 RC2 zum Einsatz. IIS8 läuft als HTTPD mit PHP 5.3 und MySQL 5.5. Angebunden ist der V-Server mit 100 Mbit. CPUs hat er 2 V-Cores und 4 GiB RAM. Alles an sich keine schlechte Config und ansonsten läuft der Server auch fix. Allerdings trügt Schein bei PHP und MySQL.

Seitdem ich nun vom Prozeduralen MySQL aufs Objekt Orientierte MySQLi umgestiegen bin, läuft meine Homepage sehr langsam.

Kleines Beispiel (meine Seiten):

(Das Gästebuch ist noch schlimmer!)

Nach Angaben von PHP.net soll man bei PHP ab Version 4.3.x MySQLi verwenden. Allerdings ist hier MySQL ja sichtlich schneller! Bei meinen Abfragen handelt es sich eher um simple Abfragen.

An den Configs habe ich auch schon versucht zu optimieren. Hier scheint das Problem aber nicht zu liegen.

Hier der Sourcecode vom Blog: http://nopaste.me/paste/147588961452fff1fe9c66c

Die functions.inc.php enthält nur Textformationen, deswegen brauche ich sie nicht posten.

Die SQL Verbindung erfolgt so:
PHP:
$mysqli = new mysqli($SQLDBServer, $SQLDBUser, $SQLDBPassword, $SQLDBDatabase);

if ($mysqli->connect_error)
{
    trigger_error('Database connection failed: '  . $mysqli->connect_error, E_USER_ERROR);
}

Ich würde mich echt tierisch über Eure Hilfe freuen!

Vielen Dank schon mal im Voraus! :)
 
Versuch einmal 127.0.0.1 (auch, wenn es vom Sinn her das Selbe ist).

Und es war eine Frage :)
Anders/genauer formuliert:
Warum denkst du, dass es am Verbindungsaufbau liegt
(statt an den Abfragen oder etwas ganz anderem in PHP)?
Hast du Zeitmessungen gemacht (per PHP-Code, nicht mit einer Uhr),
welcher Codeteil wie lang braucht, oder ...?
 
Eeeeh... lol!? Warum zum Himmel klappt's wunderbar mit 127.0.0.1 und nicht mit localhost? Das wundert mich jetzt aber wirklich! xD

Bzgl. des Verbindungsaufbaues: Nach Zeit habe ich's nicht gemessen, eher nach Gefühl. Allerdings habe ich meine SQL-Querys auch schon über Neor Profile SQL laufen lassen und nichts negatives entdeckt.

Vielen Dank für Deine Hilfe! Und ich mach mir da'n Wolf, schau mir die Configs durch, durchwühle Google (erfolglos) und down- und upgrade PHP und MySQL und nichts hat's gebracht; außer jetzt Host zu IP. So einfach wär's gewesen! :)
 
Schau mal in der my.ini deines MySQL-Servers nach diesem Parameter:

http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_skip-name-resolve

Ansonsten wäre auch noch IPV4/V6 als eine mögliche Ursache für die langsamen Verbindungsaufbaus denkbar.

Edit: Bezgl. des Parameters - was ich da als Link hinterlegt habe ist als Argument für den Server-Executable. Wenn du es in der my.ini einbauen willst, kannst du das so machen:

Code:
[ mysqld]
....
skip-name-resolve
 
Zuletzt bearbeitet:
Also in der my.ini steht nichts drin. Auch das Eintragen in die ini bringt nichts.

Vielleicht doch ein IPv4/IPv6 Konflikt? Wobei IPv6 im Adapter deaktiviert ist. Vielleicht mal aktivieren?
 
Nein, eher nicht aktivieren. Wer weiß, was du dir dann damit zerschießt ;-)

Ich hatte auch mal Probleme mit PHP + MySQL auf einem Windows-System und die (temporäre) Lösung war, von localhost auf 127.0.0.1 zu wechseln. Du kannst aber mal schauen, ob in

%SystemRoot%\System32\drivers\etc\hosts

eine Zeile für localhost drin steht

Code:
127.0.0.1 localhost
 
Damit wird localhost automatisch zu 127.0.0.1 aufgelöst. Schäden sollte es auf keinen Fall anrichten, deswegen kannst du es mal probieren.
 
Zurück