DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   Brzina i velicina xml fajla (http://www.devprotalk.com/showthread.php?t=10257)

AdriaMart 23. 07. 2011. 14:51

Brzina i velicina xml fajla
 
Zanima me ako imam veliku mysql bazu npr. 100 000 unosa i vrsim ekstrakciju baze u xml fajl hoce li to biti veliko opterecenje za sajt i hoce li uopste raditi ili usporiti server. Kako da resim ovaj problem? Da li mozda da rasparcam na manje xml fajlove ili... Kakva je praksa prilikom ekstrakcije ili mi mozda treba jako brz server?

ivanhoe 23. 07. 2011. 16:50

a sto izvozis bazu kao XML uopste?

AdriaMart 23. 07. 2011. 20:00

Mozda je bolje da uzimam podatke direktno iz baze?

ivanhoe 23. 07. 2011. 21:07

ako ti samo trebaju neki podaci iz baze onda je svakako najbolje da to uzimas iz baze pomocu skripte... ako zelis da prebacis podatke nekud drugde, onda ti je opet bolje da koristis neki drugi format, tipa sql export... sve zavisi sta hoces da uradis?

AdriaMart 24. 07. 2011. 03:16

Iz baze uzimam koordinate i naslove i sve ekstraktujem u xml fajl odakle postavljam markere na google mapu na osnovu koordinata... i to samo one koordinate koje se poklapaju sa radujusom, znaci pomocu formule izvlacim neophodne podatke (koordinate i naslove) i na osnovu toga se pravi xml fajl...

Dusan Krstic 25. 07. 2011. 19:42

Uz sve trikove, otimizacije algoritma, xml u mysql od 300 000 rekorda traje 10min na 2GB serverske memorije. Prepostavljam da je obrnuti proces podjednako zahtevan.

jablan 25. 07. 2011. 19:57

Mislim da mysqldump može da dumpuje u XML. Ne radim sa mysql-om, ali čisto sumnjam da bi mysqldumpovanje 300k recorda trajalo 10 minuta. Naravno, puno zavisi i koliki su recordi.

AdriaMart 25. 07. 2011. 20:55

Ne ekstrkuju se svi zapisi vec samo oni koji odgovaraju odredjenom upitu... i mislim da nece biti problema, jedino je sad pitanje brzine pretrage mysql baze za podacima koji ce se ekstraktovati u xml fajl...

//generisanje_xml.php?koor=40.802416&koor2=20.465600 88899992&radius=100

jablan 25. 07. 2011. 21:29

Onda možeš da ih povadiš sa nečim na foru:

Kôd:

mysql -X < tvoj_upit.sql > izlaz.xml

AdriaMart 25. 07. 2011. 21:33

Nije to problem vec imam java kod koji to radi... samo me je zanimalo koliko ce trajati pronalazak podataka u bazi od vise stotina hiljada zapisa a nakon toga i generisanje xml fajla!

jablan 25. 07. 2011. 21:41

Ne kapiram šta tačno hoćeš da znaš - koliko brzo će raditi query ili koliko brzo ćeš od toga napraviti XML fajl.

Ovo prvo možeš vrlo jednostavno da vidiš - jednostavno pusti query nad bazom.

Ovo drugo zavisi od dosta faktora - koliko recorda query vraća, koliki su recordi, čime praviš XML itd.

Dusan Krstic 26. 07. 2011. 08:06

mislim da sam skontao, ti hoćeš da izvučeš kverijem podatke i onda rezultat prebaciš u xml nebi li ti ostatak aplikacije koristio. Ako je tako onda ti je bolje da ostatak koda prepraviš da ti podatke vuče iz niza podataka koji si dobio kverijem a ne iz xml-a. Ustvari ti svakako xml moraš ubaciti u neki niz, ovim ćeš preskočiti deo koji snima i čita iz xml-a

biske 29. 07. 2011. 22:48

Citat:

Originalno napisao AdriaMart (Napišite 100819)
Nije to problem vec imam java kod koji to radi... samo me je zanimalo koliko ce trajati pronalazak podataka u bazi od vise stotina hiljada zapisa a nakon toga i generisanje xml fajla!

У јави можеш време да израчунаш на следећи начин:
Kôd:

getContent(){
                //Метода getTime() даје милисекунде
                long startTime = new Date.getTime();
               
                //Овде иде код где довлачиш податке из базе и смешташ их у xml.
               
                long endTime = new Date.getTime();
               
               
                System.out.println("Ukupno vreme: " + this.formatTime(endTime-startTime));
        }
public static String formatTime(long miliseconds){
                int seconds = (int) miliseconds / 1000;
                int minutes = seconds / 60;
                int hours = minutes / 60;
               
                return hours + " hours, " + minutes + " minutes, " + seconds + " seconds.";
        }


webarto 29. 07. 2011. 23:15

zašto Java? zašto XML?

biske 30. 07. 2011. 02:57

Citat:

Originalno napisao webarto (Napišite 100879)
zašto Java? zašto XML?

И мене баш интересује зашто се врши експорт у xml. Ако треба да се довуку неки подаци онда се изврши упит (било преко сторне процедуре, било директно из апликације), добије се скуп слогова (у Јави ResultSet) и онда се ти подаци приказују. Не знам што је између ова два корака убачен овај део са xml.

AdriaMart 30. 07. 2011. 03:32

Zeleo sam da omogucim i drugima da pristupaju podacima iz baze ali da nemaju direktan pristup bazi. tj. hteo sam da napravim nasto kao API za druge sajtove da mogu da integrisu, zato sam mislio da je preko xml fajla najlakse, ali ukoliko ovo zanemarim sta mislite da je najbolje da uradim jer querijem pristupam bazi i trazim odredjene zapise a baza sadrai tabelu sa vise od 300 000 unosa... ???

jablan 30. 07. 2011. 10:50

Na manje-više svim platformama to se svodi na:

* Preuzmeš GET parametre na osnovu kojih sužavaš kriterijum upita
* Sastaviš upit i pošalješ ga bazi
* Renderuješ korisniku resultset koji je vratila baza

Opciono možeš da dodaš keširanje umesto koraka 2.

Nije mi jasno šta tačno nije jasno. :)

BTW, u Railsu je dodavanje podrške za XML ili JSON bukvalno dve linije koda.

webarto 30. 07. 2011. 15:58

PHP kôd:

echo XML::build(array('foo' => 'bar')); 

HTML kôd:

<foo>bar</foo>
Jablan ti je sve rekao, a to si već trebao da znaš :) Šta će nekome 300k redova za API? Samo optimizuj SELECT, ako je moguće keširaj, i to je to.


Vreme je GMT +2. Trenutno vreme je 05:23.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.