Co je rychlejší

Zdravim vsechny, snad nebude muj dotaz hloupy, ale zajima me co je rychlejsi zda prace s databazi nebo se soubory. Napriklad ktery script by byl rychlejsi:

fopen(.....); //pocitam ze soubor se musi vytvorit
fwrite(.....);
echo fread(.....);
fclose(....);

nebo

insert into......
select from.....
echo $vysledek;

slovy:
zda-li je rychlejsi zapisovat a cist ze souboru, nebo zapisovat a cist z databaze...

co se tyce bezpecnosti, kodovani atd... se vsim sem seznamen, zajima me ciste ktera varianta je rychlejsi(zejmena u toho cteni) diky moc za odpovedi..
<HTML>Záleží na tom, jak s tím chceš pracovat. Přímá práce se souborem je rychlejší (tj. prosté čtení či zápis). Databáze bude rychlejší ve vyhledávání konkrétních dat a s operacemi nad těmito daty. Je třeba si uvědomit, že PHP skript s nějakým vlastním prohledávacím algoritmem bude vždy pomalejší než MySQL server napsaný v C++ a zkompilovaný na míru tomu stroji.

Tzn. pokud si pro každý záznam vytvoříš soubor s určitým názvem a budeš ty záznamy vyhledávat jen pomocí toho názvu, asi je lepší zvolit soubory.

Pokud ale budeš chtít ty záznamy vyhledávat pomocí něčeho jiného, než názvu, je výhodnější použít databázi. I pokud bys ručně v PHP implementoval nějakou práci s nějakými indexy, vyhledávacími stromy a hashovými mapami, aby sis to urychlil a tím napodobil MySQL databázi, bude to vzhledem k povaze interpretovaného jazyka PHP pomalejší než zkompilovaný program (MySQL server).</HTML>
skvela odpoved, mockrat dekuju...
...ještě upozorním, že u souborů musíš řešit kolize přístupů (dva procesy si chtějí přečíst nebo, nedej bože, zapsat z/do stejného souboru)

Takže v tomto ohledu bych se souborům velkým obloukem vyhnul.

Db je db. :)
děkuji tohle sem si neuvědomil ale je to logické, a jak se te kolizi da predejit ?
U souboru tím, že soubor dočasně zamkneš (http://php.net/manual/en/function.flock.php). Proces převezme prioritu a ostatní k souboru nebudou mít přístup.

U databáze to není nutné. Ale pokud je to potřeba, tak je možnost zamknout tabulku.

Je třeba si ještě uvědomit, že může dojít k asynchronizaci. To znamená, že může nastat situace, že uložíš text, ale při načtení se objeví jiný nebo modifikovaný text. To proto, že v době mezi uložením a načtením může dojít k dalšímu uložení od jiného procesu. Tomuto nešvaru se dá zabránit právě zamknutím.