Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem pole nebo databáze ?

Mam skriptik (php), kterej prochazi 1000+ xml souboru a u kazdyho potrebuji zjistit, jestli jeho jedna hodnota je uz pritomna v databazi (nyni jich tam je kolem 250).
A nevim, jestli u kazdyho souboru se mam dotazovat db nebo na zacatku skriptu nacist hodnoty a id do pole ($pole['hodnota']=id) a pak u jednotlivych souboru to porovnavat s tim polem. Co bude rychlejsi?
Dik.

Předmět Autor Datum
Rychlejsi bude zrejme to pole, pokud bude nejak serazene a bude se pouzivat rozumny zpusob hledani -…
Jan Fiala 04.11.2006 17:25
Jan Fiala
nevim jestli jste to dobre pochopil kod pri pouziti pole by vypadal takto // nacteni hodnot do pole…
foltyn 04.11.2006 17:52
foltyn
Nejsem si jist co přesně myslíš, ale asi zvažuješ rychlost operací - rychlejší by mělo být to pole.…
Flash_Gordon 04.11.2006 18:45
Flash_Gordon
V tomhle ti neporadim, neznam moznosti pole v PHP - indexovani, vyhledavani apod.
Jan Fiala 04.11.2006 20:23
Jan Fiala
To pole bude rýchlejšie. Načo je tam $pole["{$hodnota_ze_souboru}"], keď stačí $pole[$hodnota_ze_so… poslední
los 04.11.2006 20:28
los

nevim jestli jste to dobre pochopil
kod pri pouziti pole by vypadal takto

// nacteni hodnot do pole
$sql = mysql_query("SELECT id, hodnota FROM tabulka");
while ( $zaznam = mysql_fetch_row($sql) )
    $pole["{$zaznam[1]}"] = $zaznam[0]; // pole bude indexovany podle hodnoty

...


if ($pole["{$hodnota_ze_souboru}"]){...} // hodnota je v databazi
else {...}

Nejsem si jist co přesně myslíš, ale asi zvažuješ rychlost operací - rychlejší by mělo být to pole.
Přeci jen běžící kód by měl být rychlejší než dotazy běžící z databáze.

Nakonec můžeš si to změřit sám - udělat obě varianty.
Jenom pozor na množství dat. Oba způsoby se mohou začít lišit při velkém množství hodnot.

Zpět do poradny Odpovědět na původní otázku Nahoru