Performance server bij schrijven naar database

Gestart doorAarclay18 reacties460 weergaven

19 berichten · pagina 1 van 2

Aarclay

Lid · Topicstarter

Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Ik vraag mij af. Ik heb een script in NodeJS dat elke 10 seconden een XML-file binnenkrijgt, met ongeveer 300 tot 700 records erin.

Nu wil ik de inhoud van die XML-file in een database opslaan. Wat is het meest zinvolle om te doen?
De XML tijdelijk in een bestand opslaan (elke 10 sec) en deze met PHP verwerken en in de database plaatsen?

Ik wil natuurlijk de boel van mijn dedicated server niet overbelasten. En wou er graag met PHP (als het even kan wat dingen aan toevoegen.

Wat is jullie advies?
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Kun je niet met NodeJS meteen de boel in de database proppen?

Anders zou ik inderdaad een tijdelijk bestand aanmaken en die met PHP uitlezen.
Je hoeft dat met PHP niet elke 10 sec te doen, je kunt de bestanden ook gewoon laten oplopen en dan elke nacht op een rustig moment alle 6 * 60 * 24 = 8.640 bestanden uitlezen en invoeren. Tenzij je die data natuurlijk direct nodig hebt.

Sowieso zou ik de bestanden allemaal een unieke naam geven en dus niet overschrijven, dan voorkom je dat je data mist als je PHP script om wat voor reden dan ook een keer een .xml bestand overslaat in die 10 seconden.
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je zou eventueel ook de inhoud van de XML bestanden tijdelijk in het geheugen kunnen opslaan om deze 1x per zoveel minuten naar de database te schrijven als je deze niet realtime nodig hebt.
0
Aarclay

Lid · Topicstarter

Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Het is een voertuig-tracing systeem. Dus het is wel realtime....
0
Stef

Lid

Berichten
10.150
Reputatie
2
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Het is een voertuig-tracing systeem. Dus het is wel realtime....
À‰én query per 10 seconden zal de boel toch niet overbelasten? redface
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Stef schreef:
Eerdere citaten tonen
Aarclay schreef:
Het is een voertuig-tracing systeem. Dus het is wel realtime....
À‰én query per 10 seconden zal de boel toch niet overbelasten? redface
Afhankelijk van de server en de query die je uitvoert kan dat wel X)
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Het is een voertuig-tracing systeem. Dus het is wel realtime....
Dan zou ik het gewoon live doorvoeren.
Je ideale aanpak hangt natuurlijk heel erg af van, zoals Sevvlor al zegt, de query. Welke dingen wil je bewerken, hoe actueel moet alle data zijn, enz.
0
Aarclay

Lid · Topicstarter

Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Opzich is de bewerking niet veel spannends, aan de hand van een treinstelnummer een juiste type materieel (Koploper, Flirt, SGM etc..) kiezen uit een switch. En misschien nog een leuke lat/lon berekening om een dichstbijzijnde locatie in de huidige coördinaat op te halen. Geen idee of dat zwaar is met PHP als je per 10 seconden bij +/- 300 treinen dit moet doorvoeren?
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Opzich is de bewerking niet veel spannends, aan de hand van een treinstelnummer een juiste type materieel (Koploper, Flirt, SGM etc..) kiezen uit een switch. En misschien nog een leuke lat/lon berekening om een dichstbijzijnde locatie in de huidige coördinaat op te halen. Geen idee of dat zwaar is met PHP als je per 10 seconden bij +/- 300 treinen dit moet doorvoeren?
Als het goed is kun je dit met PDO in 1 query doen i.p.v 300 losse queries, dat scheelt enorm. Voor de rest zou ik gewoon timen hoelang alles duurt en of de server daarbij zwaar belast wordt.
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja, maar dit zijn alsnog losse insert queries, je kunt namelijk ook deze syntax gebruiken:

INSERT INTO blabla (ding1, ding2, ding) VALUES
(waarde1, waarde2, waarde3),
(waarde1, waarde2, waarde3),
(waarde1, waarde2, waarde3),
(waarde1, waarde2, waarde3),
(waarde1, waarde2, waarde3),
(waarde1, waarde2, waarde3)
0
Berichten
4.213
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Jessee moet hier even naar kijken... Die is heel goed met NodeJS yummie
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
@Aarclay wil je nou php of node gebruiken?
Ik zie het voordeel van php niet in?
Je kan met Node prima elke 10sec een multi insert doen. Dan heb je 1 query per 10 seconden

toevoeging op zondag 10 december 2017, 23:08:24:
Desnoods splits je de load en verdeel je deze over meerdere wueries in die 10 sec
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Stef schreef:
Het is natuurlijk wel afhankelijk van de server hardware smile
Klein detail biggrin
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren