[performance] XML versus MySQL

Pagina: 1
Acties:

  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 27-05 13:24

spaceboy

Op grote hoogte

Topicstarter
Simpele vraag hopelijk: ik sta voor de keuze om in een programma gegevens op te slaan in een groot XML-bestand of in een MySQL database (1 tabel). Als grote voordeel van XML vind ik dat je er geen database-server voor in de lucht hoeft te zetten. Maar hoe zit het het met de performance?
Het gaat om een applicatie uit een tabel/xml-bestand van pak 'm beet 10.000 entries afhankelijk van user-interference een stuk of 50 entries moet ophalen. Nu ik dit intyp denk ik dat MySQL veel sneller zal zijn, maar weet iemand of dit echt veel uitmaakt?

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

met zulke hoeveelheden durf ik wel te gokken dat MySQL sneller zal zijn.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 27-05 13:24

spaceboy

Op grote hoogte

Topicstarter
gorgi_19 schreef op 20 februari 2004 @ 20:18:
met zulke hoeveelheden durf ik wel te gokken dat MySQL sneller zal zijn.
Ja dat denk ik ook, maar is er een indicatie van te geven? MySQL echt 5x sneller, 100x sneller of misschien 2x sneller ofzo? In dat laatste geval ga ik namelijk toch voor XML.

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.


  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Ik denk dat het ook afhangt van hou je de XML file gebruikt. Bouw je een eigen routine om de XML file uit te lezen, gebruik je een 3th party stukje software.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

spaceboy schreef op 20 februari 2004 @ 20:19:
[...]

Ja dat denk ik ook, maar is er een indicatie van te geven? MySQL echt 5x sneller, 100x sneller of misschien 2x sneller ofzo? In dat laatste geval ga ik namelijk toch voor XML.
Test het uit, voor jouw specifieke situatie, met wat dummy data? Er is nogal veel van invloed op de performance.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

Het ligt er een klein beetje aan.. probleem met XML op zoeen grote hoeveelheid, is dat je het hele bestand moet inladen.. en dat is dan redelijk groot, met MySQL moet je door al die records heen, maar ook ik denk dat dat sneller zal zijn

het ligt er dus eigelijk helemaal niet aan :P alleen bij kleinere XML bestanden zou het kunnen

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

probeer het uit...
My best guess: met de juiste index op je mySQL table denk ik dat mySQL zo'n 10x sneller zal zijn...

Intentionally left blank


  • bille
  • Registratie: Mei 2000
  • Laatst online: 06-05 18:25

bille

Don't call me Buff

hmjah.. hoe ga je het geheel aanspreken? Als je een XML file parsed (hup in werkgeheugen) en daarna objectbased queries gaat uitvoeren.. dan kan dat wel es sneller zijn.. als je die file gewoon als flatfile opslag gaat gebruiken lijkt me dat een SQL database wel sneller zal zijn.. en aanzienlijk ook.

Ultra Pilammo 6666Mhz AMD, 4251Mbit/s RAM, Gefors V6666 MegaTurbo, 43" TFS, Ultra 80Gig Firewire netwerkkaart en 5D geluid met 66 speakers in 5 dimensies


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 21:44

Robtimus

me Robtimus no like you

Jaspertje schreef op 20 februari 2004 @ 20:22:
en dat is dan redelijk groot, met MySQL moet je door al die records heen, maar ook ik denk dat dat sneller zal zijn
Ooit gehoord van het woord index?

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

als je de query's cached in MySQL is een database echt way sneller dan een xml bestand aangezien de sortering en zoekopties in een xml bestand beperkt zijn en niet echt snel

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
* P_de_B vraagt zich af waarom mensen denken dat XML iets is om data in op te slaan

Oops! Google Chrome could not find www.rijks%20museum.nl


  • PommeFritz
  • Registratie: Augustus 2001
  • Laatst online: 24-11-2025

PommeFritz

...geen friet

Zie P_de_B.

En tevens; het hangt van zo veel factoren af dat het onmogelijk is om een antwoord te geven: aantal concurrent accesses, wordt er veel geupdate of alleen gequeried, omvang van de data, enz.

Ik vraag me trouwens af waarom je uberhaupt nadenkt om een database te gaan optuigen als je maar 1 tabel hebt?? Heb je echt de eigenschappen die een database je biedt nodig voor wat je wilt doen? (b.v.: moet je perse SQL queries kunnen doen?)

Hoe groot is de data? Je kunt desnoods alles in 1 keer in memory lezen, dat is duizenden keren sneller dan SQL queries uitvoeren of XML parsen.

Je zou ook eens kunnen kijken naar embedded databases, ik heb zeer goede ervaring met SQLite: ondersteunt groot deel van de SQL standaard, en je hoeft er geen database server voor op te tuigen. En hij is erg snel.

FireFox - neem het web in eigen hand


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 20-05 12:16

giMoz

iets met meester...

* giMoz eens is met P_de_B

pak een DATABASE niet een bestandsindeling... :?

persistentie in XML is een fabeltje (IMO)
een uitstekend cross platform communicatiemiddel, dat wel.

Maar voor opslaan gewoon lekker een DBMS gebruiken..

Of niet natuurlijk...


  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 27-05 13:24

spaceboy

Op grote hoogte

Topicstarter
PommeFritz schreef op 20 februari 2004 @ 20:52:
Zie P_de_B.

En tevens; het hangt van zo veel factoren af dat het onmogelijk is om een antwoord te geven: aantal concurrent accesses, wordt er veel geupdate of alleen gequeried, omvang van de data, enz.

Ik vraag me trouwens af waarom je uberhaupt nadenkt om een database te gaan optuigen als je maar 1 tabel hebt?? Heb je echt de eigenschappen die een database je biedt nodig voor wat je wilt doen? (b.v.: moet je perse SQL queries kunnen doen?)

Hoe groot is de data? Je kunt desnoods alles in 1 keer in memory lezen, dat is duizenden keren sneller dan SQL queries uitvoeren of XML parsen.

Je zou ook eens kunnen kijken naar embedded databases, ik heb zeer goede ervaring met SQLite: ondersteunt groot deel van de SQL standaard, en je hoeft er geen database server voor op te tuigen. En hij is erg snel.
Thanks, nuttige info. Die SQLite is waarschijnlijk niet bruikbaar, het gaat om 'n Java-programmaatje.
Het gaat inderdaad om 1 tabel, met relatief kleine data (twee of drie kolommen, alleen datum en floating velden). Je zegt "inlezen in het begin". Nou, erg graag. Maar hoe? Toch XML? Of een flat txt-file?

Oh ja, concurrent users: niet van toepassing.
Concurrencydata-persistency: daar zorg ik in de programmatuur 100% netjes voor. Niet nodig dus.

[ Voor 8% gewijzigd door spaceboy op 20-02-2004 21:01 ]

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.


Verwijderd

Ik denk dat de snelheid wel hoger is dan 10x hoor ;) Hoe denk je een update op die file te doen, met concurrent users :) Hele file locken? :)

  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 27-05 13:24

spaceboy

Op grote hoogte

Topicstarter
Verwijderd schreef op 20 februari 2004 @ 21:03:
Ik denk dat de snelheid wel hoger is dan 10x hoor ;) Hoe denk je een update op die file te doen, met concurrent users :) Hele file locken? :)
Er is maximaal 1 gebruiker.

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.


Verwijderd

P_de_B schreef op 20 februari 2004 @ 20:45:
* P_de_B vraagt zich af waarom mensen denken dat XML iets is om data in op te slaan
Als al je data die je binnen krijgt al XML is, waarom zou je het dan niet opslaan als XML? Wij krijgen van verschillende partijen documenten (in XML) aangeleverd. Op deze documenten vinden veel transformatie stappen (XSLT) plaats voor ze opgeslagen worden.

Opgeslagen worden ze dan weer in een XML database. Nu kunnen we met XQuery complexe queries op de database loslaten (die overigens gewoon indexen ondersteund) en krijgen daar ook weer XML uit terug. Die xml wordt onderandere ook weer gebruikt voor de transformatie naar de presentatielaag (XHTML / PDF)..
giMoz schreef op 20 februari 2004 @ 20:56:
* giMoz eens is met P_de_B

pak een DATABASE niet een bestandsindeling... :?

persistentie in XML is een fabeltje (IMO)
een uitstekend cross platform communicatiemiddel, dat wel.

Maar voor opslaan gewoon lekker een DBMS gebruiken..
Kijk maar eens naar Tamino (van software AG), eXist, indice. Verder ondersteund volgens mij de nieuwste oracle het ook.

  • PommeFritz
  • Registratie: Augustus 2001
  • Laatst online: 24-11-2025

PommeFritz

...geen friet

spaceboy schreef op 20 februari 2004 @ 20:57:Thanks, nuttige info. Die SQLite is waarschijnlijk niet bruikbaar, het gaat om 'n Java-programmaatje.
Ook voor java heb je embedded databases en andere persistentie mechanismes.
Zou je niet gewoon een custom data file kunnen ontwerpen?
Of anders Prevayler eens proberen. 3000 keer sneller als MySQL (zeggen ze) en geen database engine nodig, want het is een very light weight object serialization library. (ik heb er verder geen ervaring mee).

Het klinkt mij i.i.g. toe dat een database overkill is voor wat je wilt doen. Maar misschien moet je nog meer info geven (zijn er updates nodig? enz).
Het gaat inderdaad om 1 tabel, met relatief kleine data (twee of drie kolommen, alleen datum en floating velden). Je zegt "inlezen in het begin". Nou, erg graag. Maar hoe? Toch XML? Of een flat txt-file?
Als de data statisch is (geen updates) gewoon een flat ASCII of CSV file maken en in 1 ruk inlezen, sneller kan niet. In geval van updates, zie boven.

FireFox - neem het web in eigen hand


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Verwijderd schreef op 20 februari 2004 @ 21:03:
Ik denk dat de snelheid wel hoger is dan 10x hoor ;) Hoe denk je een update op die file te doen, met concurrent users :) Hele file locken? :)
Euh, ja, nooit gehoord van mutexes en exclusive sharing?

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 20-05 12:16

giMoz

iets met meester...

Verwijderd schreef op 20 februari 2004 @ 22:38:
[...]

Kijk maar eens naar Tamino (van software AG), eXist, indice. Verder ondersteund volgens mij de nieuwste oracle het ook.
Tamino valt IMO wel onder een DBMS.

gewoon opslaan in een flat xml document vind ik nogal vaag, tenzij je het gebruikt als soort van .ini bestand...

(heb gewerkt met tamino, maar is niet echt denderend snel.... )

Of niet natuurlijk...

Pagina: 1