Jump to content
php.lv forumi

XML apstrāde un saglabāšana DB


Sasa

Recommended Posts

Lieta sekojoša apstrādāju nelielu xml dokumentu ar SimpleXML un saglabāju iekš datubāzes ar PDO, bet ir tā ka visa šī nelielā operācija izpildās kādu laiciņu un man pat sākumā nācās uzlikt set_time_limit(0); jo bez šī man operācija pārsniedz maksimālo izpildes laiku.

 

XML ir produktu katalogs kurā ir info par pašu produktu, bildēm un pieejamiem izmēriem. Tad es sataisīju datubāzē tabulas produkti, produktu bildes, produktu izmēri. Bilžu un Izmēru tabulās ir produkta ID ar ko sasaistīt.

 

Varbūt ja es atrādītu kodu kāds varētu ieteikt labāku risinājumu?

Link to comment
Share on other sites

Nu tas aizņem tik daudz laika, cik aizņem. Tev tāpat tas taču nebūs jādara katru reizi, vai ne?

 

Ja vēlies ātrāku risinājumu, izmanto «veiklāku, ašāku» programmēšanas valodu – piemēram, Python.

Link to comment
Share on other sites

Reizi pa reizi jau vajadzēs atjaunot datus no XML. Samierināšos ka man atjaunošana no XML aizņems ~ 75 sekundes.

Otra lieta runājot par datubāzes ierakstu atjaunošanu, man ir tabula produktu bildēm un tabula produktu izmēriem, kad atjaunoju produktus es visu kas saistīts ar produktu pēc produkta ID no bilžu un izmēru tabulām dzēšu ārā un tad salieku atkārtoti ar jauniem ierakstiem kas nākuši no XML, tā es daru tik tāpēc ka nezinu cik man bilžu un izmēru atnāks ar jauno XML.

Link to comment
Share on other sites

Bottleneck šeit būs nevis XML bet gan 50-100k kveriji uz katru XML'u, kas ievietojams preču datu bāzē :> Batch insert vai arī PHP konversija no XML uz CSV un ielāde ar LOAD DATA INFILE. Ja XML'ā vairāk kā 5-7m ierakstu, raksti geitveju vai batchprocesoru C vai kādā citā zema līmeņa valodā.

 

 

daGrēvi, Pitons par PHP "ašāks un veiklāks" bija varbūt kaut kur ap 2005. gadu :>

Link to comment
Share on other sites

Vispār jau zema līmeņa apstrāde atmaksāsies arī pie 5 ierakstiem pa 100B. Vienkārši pēc 5milj ierakstu uz vidējas "normālas" kastes, kas gan ir mans subjektīvais aprēķins, PHP kļūst tik neefektīvs, ka to vairs nav saprātīgi lietot, jo php vienkārši nav paradzēts šādiem darbiem - nepieciešamie resursi uzdevuma izpildei pārsniedz labumu, kas iegūstams no uzdevuma izpildes. Atmiņas wasteland, cpu laika lietojums un such. Pie tam grūtāk nolasīt failu pa blokiem un tādējādi taupīt atmiņu. Miljons un viens iemesls.

Ja ir nevēlme ņemties ar C/c++, tik pat labi var izmantot arī mono vai vēl labāk- Go, kas ar šo darbu tiks galā vairāk kā lieliski, no paša pieredzes.

Link to comment
Share on other sites

Kā vispār iespējams vienā postā ietilpināt tik daudz stulbību? Nu hren ar to,bet

 

Miljons un viens iemesls

izklausās varen interesanti. Kādus 10 nozīmīgakos varētu minēt,ņemot vērā ka lielus XML neviens ramā tāpat nelasa.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...