Toon posts:

[mySQL] Grote xml importeren duurt lang

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een xml file (van 54 mb) ~74.328 records

Deze importeer ik met php in de database maar dat duurt 4,5 minuten

Weet iemand een manier hoe dit sneller kan of is het normaal dat het zo lang duurt.

Alvast bedankt

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Wat heb je al geprobeerd? Hoe importeer je nou precies? Gaat het om een nieuwe tabel of zit er al veel data in?

Er kan veel tijd gaan zitten in het continu bijwerken van indexen. Aan het einde van de import actie pas de indexen updaten/aanmaken kan voor een leuke performance winst zorgen.

{signature}


Verwijderd

Topicstarter
Ik TRUNCATE de tabel voor dat ik begin en dan voeg ik 1 voor 1 de records in want kon niet zo snel iets vinden om een bulk insert te doen met 1 query

Had wel wat gevonden met LOAD DATA maar dan moet ik de hele structuur verbouwen.

  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 14:43
Kun je niet eerst inlezen in een tijdelijke tabel?

  • igmar
  • Registratie: April 2000
  • Laatst online: 30-11 18:38

igmar

ISO20022

Gewoon geduld hebben, dit is niet uitzonderlijk lang.

Verwijderd

Topicstarter
Dit proces zet de hele server in de wacht en alles wat op die database zit moet ff wachten. Als je dat niet hebt met een TEMP table dan zou dat een optie kunnen zijn.

Maar het probleem is dus dat het alles stil legt.

[ Voor 14% gewijzigd door Verwijderd op 19-02-2007 15:02 ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op maandag 19 februari 2007 @ 14:57:
dan voeg ik 1 voor 1 de records in want kon niet zo snel iets vinden om een bulk insert te doen met 1 query
Bekijk de manual over de insert syntax nog maar eens. ;)

Maar goed, je gaat niet in op mijn index hint. Aangezien het toch om een aanvankelijk lege tabel gaat, kan je de index(en) ook pas na alle inserts toevoegen/enablen. Zijn er uberhaupt indexen? Vertel aub ook of er indexen zijn, want ik heb geen glazen bol.
igmar schreef op maandag 19 februari 2007 @ 14:58:
Gewoon geduld hebben, dit is niet uitzonderlijk lang.
Beetje vreemde houding. Misschien is dit wel een taak welke vaak terugkomt en waar nu met enig uitzoekwerk toch de performance flink verbeterd kan worden.

{signature}


Verwijderd

Topicstarter
Ik heb 3 indexen in die tabel zitten

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 01-12 19:36
Het parse van een XML file van die grootte kost PHP behoorlijk veel kracht.

Probeer waar mogelijk je XML file eens in kleinere stukken te hakken.

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Verwijderd

Topicstarter
Keiichi schreef op maandag 19 februari 2007 @ 15:11:
Het parse van een XML file van die grootte kost PHP behoorlijk veel kracht.

Probeer waar mogelijk je XML file eens in kleinere stukken te hakken.
Ik krijg die xml extern aangeleverd !

Verwijderd

Topicstarter
Misschien is dit wel een taak welke vaak terugkomt en waar nu met enig uitzoekwerk toch de performance flink verbeterd kan worden.
Komt elke 2 uur terug dus kan zeker wel voor perfomance zorgen denk ik.

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op maandag 19 februari 2007 @ 15:08:
Ik heb 3 indexen in die tabel zitten
Ik zal je gerust stellen, hier posten is gratis, je hoeft niet per woord te betalen.

Reageer aub wat uitgebreider. Je hoeft niet binnen 2 minuten te reageren. Ik kan je gewoon echt niet verder helpen als je niet wat meer inzet toont. Probeer eens te timen hoe lang het duurt als je de indexen na het inserten pas aanmaakt/enabled en vertel uitgebreid je ervaring.

{signature}


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Xml file platslaan, bulk insert, klaar. 1 voor 1 inserten kost veel te veel performance

[ Voor 4% gewijzigd door mulder op 19-02-2007 15:17 ]

oogjes open, snaveltjes dicht

Pagina: 1