voodoolv Posted May 30, 2006 Report Share Posted May 30, 2006 Ideja sekojoša: Ir 1 fails ar šādu struktūru: <?$info['viens']="kautkas"; $info['zhirafe']="tastas"; $info['maarutki']="esuntu"; ?> failā ir ap 5000 ierakstu. Ir otrs fails: <?include('pirmaisfails.php'); $viens = 'viens'; if ($info[$viens]<>''){echo $viens;} else {echo'nekas';}; //shis ir tikai piemeers, ar ierakstiem tiek veiktas citas, liidziigas darbiibas ?> Uz mana lokālā servera viss notiek ātri un bez gļukiem, BET Vai šādā veidā netiek noslogots serveris/klients? Ja jā, tad kādā veidā atrisināt šo problēmu? Mysql un citas datubāzes nav pieejamas... Link to comment Share on other sites More sharing options...
v3rb0 Posted May 30, 2006 Report Share Posted May 30, 2006 ja jau esi uztaisījis, tad http://lv2.php.net/microtime un benchmarko. Link to comment Share on other sites More sharing options...
Delfins Posted May 30, 2006 Report Share Posted May 30, 2006 klients nē, serveris jā... Kā uzlabot? Figziņ.. jāskatās cik bieži tu to masīvu izmanto... Es bi piedāvātu sadalīt to failu, piemēram veidot failus pēc pirmā chara... a.php <?php $info['abcd'] = 'aaa'; $info['addd'] = 'caca'; ?> b.php <?php $info['bbcd'] = 'bbb'; $info['bddd'] = 'baba'; ?> function label($name) { $infoG = & $GLOBALS['infoG']; $fileName = 'labels/'.substr($name,0,1) . '.php'; if (!in_array($fileName,included_file())) { @ include_once($fileName); $infoG = array_merge($infoG,$info); } return (empty($infoG[$name])) ? '@'.$name : $infoG[$name]; } Ja leibli tiek izmantoti maz, tad lādēs pa pačkām... Link to comment Share on other sites More sharing options...
voodoolv Posted May 30, 2006 Author Report Share Posted May 30, 2006 Tencinu. Attiecīgi ja to visu masīvu veidotu iekš mysql datubāzes? Vai ir kāda ātrdarbības atšķirība vai tiek izmantota 5000 mysql datubāze vai 5000 ierakstu fails? Pieņemot, ka dati netiek dalīti alfabētiski un kā citādi... Link to comment Share on other sites More sharing options...
bubu Posted May 30, 2006 Report Share Posted May 30, 2006 Flat teksta failā meklēšana notiks O(n) laikā (fails ta viss jāielasa pēc kārtas). Turpretī MySQL datubāzē pie pareiziem indeksiem meklēšanas sarežģītība būs logaritmiska O(log n). Ceru, ka zini atšķirību starp lineāru funkciju un logaritmisku funkciju. Link to comment Share on other sites More sharing options...
voodoolv Posted May 30, 2006 Author Report Share Posted May 30, 2006 Delfins: IMHO dalīšana alfabētiskos failos nekādu labāku rezultātu nenesīs, jo pie katra pieprasījuma tiek izmantoti vairāki šīs bāzes pieprasījumi, t.i. tiek izmantoti gandrīz visas (ir iespēja arī ka visas) db daļas... Bubu: Failu un mysql teorētiskā ideoloģija man ir skaidra. Kā Jūs ieteiktu šo atrisināt? Nav man īsti skaidrs vai 5000 ieraksti ir daudz vai nav daudz. Vai tas noslogo serveri vai nē.. Šādas db ideja ir sekojoša: Datubāzē atrodas vairāku vārdu skaidrojumi. Tā tiek izmantota ģenerējot šo vārdu sarakstu (līdz 50 pie katra pieprasījuma). Katram vārdam vai nu ir/nav skaidrojums. Ja tas tiek atrasts datubāzē, vārdam tiek pievienots tā skaidrojums... Piem. datubāzē ir ieraksts laacis->bruuns. Pieprasījumā ir vārds laacis. Jāizvada laacis bruuns. Līdz šim atrisināju to veidā kā minēts 1. postā. Lokāli man aizķeru nav un viss darbojas tip top. Nav pārliecības kā tas varētu darboties uz servera un pie liela pieprasījumu skaita. Der arī mysql iejaukšanās... Any ideas? Link to comment Share on other sites More sharing options...
v3rb0 Posted May 30, 2006 Report Share Posted May 30, 2006 imo nav bremzīgi daudz, salīdzinājumam gd f-ju izmantošana noslogos vairāk. Link to comment Share on other sites More sharing options...
zverj Posted May 31, 2006 Report Share Posted May 31, 2006 Ideja sekojoša: Ir 1 fails ar šādu struktūru: failā ir ap 5000 ierakstu. Ir otrs fails: Uz mana lokālā servera viss notiek ātri un bez gļukiem, BET Vai šādā veidā netiek noslogots serveris/klients? Ja jā, tad kādā veidā atrisināt šo problēmu? Mysql un citas datubāzes nav pieejamas... SQLite? Link to comment Share on other sites More sharing options...
v3rb0 Posted May 31, 2006 Report Share Posted May 31, 2006 SQLite iet kategorijā "citas datubāzes", kas ir "nav pieejamas" Link to comment Share on other sites More sharing options...
Delfins Posted May 31, 2006 Report Share Posted May 31, 2006 (edited) shared-memory ;) Edited May 31, 2006 by Delfins Link to comment Share on other sites More sharing options...
Recommended Posts