MySQL “select”: Windows nebo Linux?

MyEgo.cz

home foto blogy mywindows.cz kontakt

MySQL “select”: Windows nebo Linux?

Linux 10.10.04

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

Komentáře

  1. 1 Jiří Macich ml. 10.10.04, 01:10:02
    FB

    Nerozumím jedné věci. Píšeš, že jsi testoval na WinXP Pro SP2 a poté rozmlouváš Windows Server 2003. Myslíš, že systémy jsou natolik shodné, že můžeš test na WinXP Pro převést v praxi na Win2003 Server?

  2. 2 Radek Hulán 10.10.04, 01:10:04
    FB

    [1] ano, jádro, NTFS, a MySQL je na nich stejná.. A Directory Services, IIS, a další věci mají na rychlost Win2k3 další, spíše negativní, vliv.

  3. 3 martin 10.10.04, 02:10:41
    FB

    Já tu hlavně vidím rozdíl v souborových systémech, protože ReiserFS nabízí určitě znatelně vyšší výkon než NTFS.

    Nicméně pro webový server je zajímavější jiná věc a to ReiserFS s patičkami. Když si vezmu, že mám drahý server s SCSI RAID, tak mě ta znatelná úspora místa na Linuxu hodně zaujme. Jenom můj průměrn web zabírá na ReiserFS 2MB a na NTFS 10MB a to už stojí za zamyšlení, když mě SCSI RAID pole o velikosti 60GB přijde na nějakých 10 000 Kč.

  4. 4 blogger 11.10.04, 02:10:16
    FB

    Samozřejmě, na Win2K/2003 byvh pro web použil ASP.NET + MSDE (s triggery a transakcemi) a bylo by to výkonnostně zase o něčem jiném. Používat na Windows jakékoliv OpenSource je hovadina, málokdy bývá na tuhle platformu optimalizované. Nemluvě o tom, že komerční použití MySQL, ZendOptimizer apod. na Windows není bezplatné.

    Pokud sem dáte generační skript té mySQL databáze a kompletní zdroják v PHP, mohu to zkusit do dané SW kombinace a porovnat je jako celek.

  5. 5 Radek Hulán 11.10.04, 12:10:31
    FB

    [4] určitě ano, ale to je řešení z poněkud jiné cenové hladiny... Navíc, ASP.NET runtime (mono) mi běží i na Linuxu, a jako DB tam mám PostgreSQL, včetně triggerů a transakcí. A opět zdarma.

  6. 6 spaze 11.10.04, 10:10:02
    FB

    [4] mohl bych videt (copy/paste prislusne sekce a url, kde je to uvedeno staci ;) tu cast licence na MySQL a ZO, kde je uvedeno, ze "komerční použití MySQL, ZendOptimizer apod. na Windows není bezplatné"?