Lang verhaal kort: een website die draait op
- windows server 2003 met apache 2.2 en php 5.2 en mysql 5.1 maakt gebruik van libmysql
zet ik over naar
- windows server 2012 met apache 2.4 en php 5.6.2 en mariadb 10 en maakt gebruikt van mysqlnd
Na wat testen blijkt het dat verbinding maken met een mysql server via mysqlnd vele malen trager is dan via libmysql.
Hoe getest? Een pagina gemaakt die:
new mysqli, mysqli->close, new mysqli, mysqli->close, unset(mysqli), mysql_connect, mysql_select_db, mysql_close aanroept
Vooraf en achteraf de tijd bepaalt met microtime(true)
Vervolgens bovenstaande verhaal 4 keer doet (1x mysql5.1 IP, 1x mariadb10.0.14 IP, 1x mysql5.1 DNS, 1x mariadb10.0.14 DNS)
Getest in de volgende setups:
originele server met php 5.2.17 (libmysql)
Originele server met php 5.3.29 (mysqlnd)
Nieuwe server met php 5.2.17 (libmysql)
Nieuwe server met php 5.3.29 (mysqlnd)
Nieuwe server met php 5.5.14 (mysqlnd)
Nieuwe server met php 5.6.2 (mysqlnd)
windows XP computer met php 5.2.17 (libmysql)
windows xp computer met php 5.3.29 (mysqlnd)
windows 7 computer met php 5.2.17 (libmysql)
windows 7 computer met php 5.3.29 (mysqlnd)
Uit alle testen komt het volgende naar voren:
php 5.2 met libmysql: altijd onder de 0,002 seconden, vaak zelfs onder de 0,001 seconden
php hoger dan 5.2 met mysqlnd: een enkele keer rond de 0,002 seconden, bijna altijd 0,015 seconden
Dat is toch 10 tot 15 keer trager. Ik zou ook niet weten waarom want mysqlnd zou veel efficienter moeten zijn.
Ik kan er ook niets over terugvinden op internet.
Ik kan me ook niet voorstellen dat een dergelijk verschil nooit is opgevallen...
Ik heb geen mogelijkheid om een linux variant te testen.
Is er iemand in de gelegenheid om ook eens te testen hoelang het duurt om een database verbinding te maken en dat te posten?
(wel mysql uiteraard).
- windows server 2003 met apache 2.2 en php 5.2 en mysql 5.1 maakt gebruik van libmysql
zet ik over naar
- windows server 2012 met apache 2.4 en php 5.6.2 en mariadb 10 en maakt gebruikt van mysqlnd
Na wat testen blijkt het dat verbinding maken met een mysql server via mysqlnd vele malen trager is dan via libmysql.
Hoe getest? Een pagina gemaakt die:
new mysqli, mysqli->close, new mysqli, mysqli->close, unset(mysqli), mysql_connect, mysql_select_db, mysql_close aanroept
Vooraf en achteraf de tijd bepaalt met microtime(true)
Vervolgens bovenstaande verhaal 4 keer doet (1x mysql5.1 IP, 1x mariadb10.0.14 IP, 1x mysql5.1 DNS, 1x mariadb10.0.14 DNS)
Getest in de volgende setups:
originele server met php 5.2.17 (libmysql)
Originele server met php 5.3.29 (mysqlnd)
Nieuwe server met php 5.2.17 (libmysql)
Nieuwe server met php 5.3.29 (mysqlnd)
Nieuwe server met php 5.5.14 (mysqlnd)
Nieuwe server met php 5.6.2 (mysqlnd)
windows XP computer met php 5.2.17 (libmysql)
windows xp computer met php 5.3.29 (mysqlnd)
windows 7 computer met php 5.2.17 (libmysql)
windows 7 computer met php 5.3.29 (mysqlnd)
Uit alle testen komt het volgende naar voren:
php 5.2 met libmysql: altijd onder de 0,002 seconden, vaak zelfs onder de 0,001 seconden
php hoger dan 5.2 met mysqlnd: een enkele keer rond de 0,002 seconden, bijna altijd 0,015 seconden
Dat is toch 10 tot 15 keer trager. Ik zou ook niet weten waarom want mysqlnd zou veel efficienter moeten zijn.
Ik kan er ook niets over terugvinden op internet.
Ik kan me ook niet voorstellen dat een dergelijk verschil nooit is opgevallen...
Ik heb geen mogelijkheid om een linux variant te testen.
Is er iemand in de gelegenheid om ook eens te testen hoelang het duurt om een database verbinding te maken en dat te posten?
(wel mysql uiteraard).
mookie
