Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Rychlost výpisu dat z DB vs rychlost hledání dat a následný výpis z XML

Ahoj,
řeším následující problém. Mám cca. 60 xml souborů se sportovními výsledkami a řeším jak je co nejrychleji vytáhnout z uložiště a presentovat. Napadají mě dva postupy:
1. Vzít všech 60 xml souborů a naimportovat je do DB. Výhoda je rychlé a pohodlné vypisování dat z DB. Nevýhodou je takřka šílené importování dat z XML do DB a dosti šílená struktura databáze. Dále script by jistě spadl na memory limitu a psát parser v C# prostě neumím :-).
2. Protože jsou soubory xml logicky pojmenovány. Tak mě napadlo prostě na případný dotaz daný soubor vzít a prohledat ho na hledanou hodnotu (samozřejmě ne brutální metodou ale příslušnými nástroji).
Jaký z těchto dvou postupů je správný a je prohledávání xml rychlejší než vyhledání dat z DB?
17. 7. 2012 08:42:20
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785727
Martin
verified
rating uzivatele
(62 hodnocení)
17. 7. 2012 09:14:07
Určitě naimportovat a pak pracovat jen s DB.
17. 7. 2012 09:14:07
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785726
Vít Michalek
verified
rating uzivatele
(14 hodnocení)
17. 7. 2012 09:18:04
Co je na importu z XML tak složitého?
http://cz.php.net/manual/en/simplexml.examples-basic.php
Určitě 1)
Přece nebudeš kvuli jednomu dotazu hledání procházet 60 souboru, lepší je přece 1 dotaz nad DB
17. 7. 2012 09:18:04
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785725
@mick362 ... neprochazelo by se 60 soborů ale jeden protože soubory jsou celkem logicky pojmenovány. Ten import do DB se mi nechce moc dělat, protože je potřeba jej provádět každých 10 minut minimálně a při tomto množství se prostě server zaneprázdní.
17. 7. 2012 09:29:22
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785724
Vít Michalek
verified
rating uzivatele
(14 hodnocení)
17. 7. 2012 09:31:10
Nevím co to máš za stránky, jaké dotazy tam chodí. Asi tam nemáš fultext, ale jen předem nastavitelné hodnoty, takže asi jednoduše poznáš do kterého souboru se máš podívat.
17. 7. 2012 09:31:10
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785723
vlnk
verified
rating uzivatele
(4 hodnocení)
17. 7. 2012 09:57:24
Nechal bych to na stranu klienta - xml/xslt šablony
17. 7. 2012 09:57:24
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785722
Dominique
verified
rating uzivatele
(5 hodnocení)
17. 7. 2012 10:01:40
@mic362
Tak to jsi jeste poradny XML nevidel, co dovedou programatori splacat za prasarny a ne vsechno se da resit pres simpleXML.
@tomas86
Ja ted dodelal import XML, ktery uz jen sam svou velikosti narazi na memory limit, ale ze zkusenosti vim, ze se to da vzdy importovat a zpusobu je hodne.
2. zpusob je tezkopadny, pomaly a uz z podstaty blby a s nim casteji narazis na memory limit, nez kdyby jsi to mel v databazi. Kazda funkce, ktera bude muset nacitat XML soubor jej znovu ulozi do pameti.
XML je pro vymenu dat pomoci strukturovanych prvku, ale nikdy nedokaze nahradit databazi.
17. 7. 2012 10:01:40
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785721
janr
verified
rating uzivatele
(17 hodnocení)
17. 7. 2012 10:07:35
Zrovna dělám na něčem podobném, těch XML tam je přes 4000 a jsou poměrně velké, někdy 200 MB soubory. Rozhodně importovat do DB a následně se tázat přímo tam. Ten import 60 XML do mysql by neměl trvat nijak dlouho, počítal bych to na desítky sekund. Ale záleží jak jsou velké.
Kdyby to byly malé soubory a přesně bys věděl kam se dívat pro načtení nějaké hodnoty, zkusil bych i druhou variantu - načítat XML rovnou bez DB a hodnoty kešovat, takže při dalším zobrazení už se XML nemusí parsovat. Kešovat můžeš buď do mysql nebo do souborů na disku, to zvaž, záleží na četnosti aktualizací XML, možná bych zkusil kešovat s APC. Hodně štěstí.
---------- Příspěvek doplněn 17.07.2012 v 10:10 ----------
A ještě ohledně memory limitu - je lepší použít nějaký parser, který nenačítá celé XML do paměti ale postupně, blok po bloku. Já to řešit musel, protože 200 MB XML když načtu celé do paměti, 2GB paměti jsou v pytli.
Pomohlo mi tohle http://www.ibm.com/developerworks/xml/library/x-xmlphp2/index.html a pak jsem se inspiroval u téhle třídy https://github.com/prewk/XmlStreamer
17. 7. 2012 10:07:35
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785720
Vít Michalek
verified
rating uzivatele
(14 hodnocení)
17. 7. 2012 10:14:25
@Bluemoon
Ale jo vidět, tak ten simpleXML jsem dal jen jako ukázku, existují i jiné způsoby pro import XML
17. 7. 2012 10:14:25
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785719
Pokusím se porovnat prohledávání přes simpleXML s DB ... údajně je XML na toto rychlejší ale je otázkou do kolika položek. Jinak se jedná o soubory o max velikosti do 100Kb jde spíš o to, že jich je hodně ... jedna složka má přes 2000 souborů .. to už je slušná pálka na import = zahlcení serveru. Nejspíš budu hodně cachovat web samotný, takže prohledání XML by zabralo jen chvilku při první spuštění pak už to bude jen vyhození cache a ponovém uploadu z ftp se cache zneplatní ...
Db je dobré řešení ale asi ne v tomto případě kdy se data mění do hodiny několikrát.
17. 7. 2012 12:43:43
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785718
hm
verified
rating uzivatele
(20 hodnocení)
17. 7. 2012 12:47:29
xml nemuze byt nikdy rychlejsi nez standardizovana db... nikdy... chapu problemy s importem, taky xml nemam rad kvuli tomu ze s tim muze nastat tuna ruznych problemu a nerad je importuji, ale porad lepsi importovat to do db a mit neco co proste jede rychle a jednoduse nez kazdej pozadavek cist xml a podavat data z nich... nehlede na frekvenci zmeny dat, na to se da import optimalizovat jako treba projit xml a zmenit jen data co se zmenila apod...
17. 7. 2012 12:47:29
https://webtrh.cz/diskuse/rychlost-vypisu-dat-z-db-vs-rychlost-hledani-dat-a-nasledny-vypis-z-xml/#reply785717
Pro odpověď se přihlašte.
Přihlásit