V předchozím testu jsem se zaměřil na rychlost MySQL databáze pro vkládání záznamů, INSERT INTO,
v tomto testu se podívám na věc, která je v praxi častější, a to vyhledávání SELECT LIKE '%string%'.
Testovaná konfigurace počítače a systému:
CPU: Pentium-4/HT 3.4 GHz
RAM: 2x512MB DDR443
HDD: SATA 7.200rpms, 8MB cache
Lin: SUSE 9.1, kernel 2.6.8.1, ReiserFS
Win: WinXP Pro SP2, NTFS
Testovací kód prováděl 10x za sebou celkem 100 SELECTů:
function test($s){
$query=mysql_query(
'select id from `test`
where `body` like
("%'.$s.'%")');
if ($row=mysql_fetch_object($query)) echo $s;
}
$iterationsCount = 10;
$subIterationsCount = 100;
for($i = 0; $i < $iterationsCount; $i++) {
$timer->start();
for($j = 0; $j < $subIterationsCount; $j++)
test(strval($j).' ');
$test->add($timer->stop());
}
Výsledek SELECT testu je v podstatě totožný jak INSERT testu, MySQL na Linuxu má sice vyšší rozptyl výkonu, nicméně, je o desítky procent výkonnější než
na Windows. Pokud chcete tedy hostovat svoje PHP/MySQL řešení na Windows 2003 serveru, je dobré si to rozmyslet, a místo
koupě tohoto serveru, použít raději Linux. Je zdarma a je rychlejší.
Výsledky pro Windows:
Windows
Average: 7.251727175712586 s
Standard deviation: 0.009027196825484
Výsledky pro Linux:
SUSE Linux
Average: 5.506822347640991 s
Standard deviation: 0.018683764226855 