Info: 20000 folderów i tyleż odpowiadających im rekordów w bazie danych.
Test: Sprawdzenie istnienia folderu o określonej nazwie.
Kod testowy:
<?php
echo '<br />Sprawdzenie istnienia folderu o określonej nazwie:';
mysql_query("SELECT id FROM test_big_table WHERE folder = 'folder_12345'"); echo '<br /><br />Baza danych: ' . (microtime() - $start) . ' sekund(y)';
is_dir('folders/folder_12345'); echo '<br />System plików: ' . (microtime() - $start2) . ' sekund(y)'; ?>
Wyniki:
1. Brak indeksów w bazie:
Kod
Baza danych: 0.016986 sekund(y)
System plików: 0.001505 sekund(y)
Kod
Baza danych: 0.01789 sekund(y)
System plików: 0.001337 sekund(y)
Kod
Baza danych: 0.016653 sekund(y)
System plików: 0.00139 sekund(y)
Kod
Baza danych: 0.017132 sekund(y)
System plików: 0.001288 sekund(y)
Kod
Baza danych: 0.01752 sekund(y)
System plików: 0.00128 sekund(y)
2. Założony indeks na polu zawierającym nazwę folderu:
Kod
Baza danych: 0.000307 sekund(y)
System plików: 0.001344 sekund(y)
Kod
Baza danych: 0.000303 sekund(y)
System plików: 0.001227 sekund(y)
Kod
Baza danych: 0.000392 sekund(y)
System plików: 0.001147 sekund(y)
Kod
Baza danych: 0.000427 sekund(y)
System plików: 0.001406 sekund(y)
Kod
Baza danych: 0.000359 sekund(y)
System plików: 0.001149 sekund(y)
Wnioski - zakładając odpowiedni indeks baza danych jest o wiele szybsza