import csv -> update other table

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SQL Database developer

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Alblasserdam zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back

Bekijk vacature »

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »

Fullstack JavaScript developer (ReactJS, NodeJS, T

Functie Het team bestaat momenteel uit ruim 15 collega’s, waarvan ruim de helft in het ontwikkelteam werkzaam is. Er zijn gave plannen om het platform ook te gaan toepassen op bijv. vliegvelden, maar ook internationale groei zit in het verschiet en daarom zijn ze op zoek naar versterking. Als Fullstack JavaScript developer werk je nauw samen met 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creeren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn ze op zoek naar een Technische front end developer. Momenteel hun front end back end team gescheiden aan het werk. Hier willen ze verandering in krijgen. Omdat ook veel interne applicaties ontwikkeld worden zoeken ze iemand die hen kan helpen om de interne applicaties te voorzien van de juiste Vue.js componenten. Zodoende willen ze de interactie tussen front end en back end versoepelen en de volgende stap binnen het platform gaan zetten. Deze componenten die jij ontwikkeld zullen in elk project gebruikt worden. Het back end team bestaat momenteel uit 8 ontwikkelaars

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

Back-End Web Developer

As a Back-End Web Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a Back-End Web Developer at Coolblue? As a Back-End Web Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you also feel confident with setting up microservices in Typescript or are open to learning this. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing pure

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

.NET Developer Shared Driving

Bedrijfsomschrijving Onze klant richt zich op het toegankelijker maken van steden, een fantastisch mooi streven. Hoe ze dat doen? Met eigen ontwikkelde software, waarmee vervoersmiddelen gedeeld kunnen worden. Deze inspirerende werkgever maakt een maatschappelijke impact en dat doen ze nu al zo'n 25 jaar! Het bedrijf is gevestigd in het centrum van Rotterdam en kent ongeveer zo'n 90 medewerkers. Het personeel is lekker gewoon gebleven! Iedereen kleedt zich zoals hij of zij dat zou willen en de sfeer is er erg fijn. Een leuke werkgever om voor te werken, en bovendien zijn er voor jou als Software Developer veel mooie

Bekijk vacature »

Full stack Javascript ontwikkelaar

Functie Benieuwd hoe jouw dag eruit ziet? Je komt binnen rond een uur of 10 en dat start je met de morning call. Dit doen we vanaf het hoofdkantoor of op het lab, ligt eraan welk project je mee bezig bent. Na de call en het verdelen van de tickets ga je met je team aan de slag. Rond een uur of 12 is er een goede lunch en ga je smiddags weer lekker door met je werk. De ene keer maak jij een game voor een groot merk om de interactie tussen product en eindgebruiker te vergroten. De andere

Bekijk vacature »

.NET developer

Functie Jij begint als .NET ontwikkelaar in een team met 10 andere Software Engineers. De werkzaamheden zijn afwisselend, zo kan het dat jij bezig bent met volledig nieuwe features of het door ontwikkelen van bestaande sites of shops. Wij ontwikkelen web applicaties, maar ook mobiele applicaties. Daarnaast bijt jij je soms ook van in externe koppelingen met systemen zoals een ERP. Als team is er een duidelijke focus m.b.t. het waarborgen van de performance en snelheid van webshops. Ook zijn wij expert op het gebied van configuratoren. Kortom enorm veel afwisselende werkzaamheden! Ook jouw werkplek kan afwisselend zijn. Soms heb

Bekijk vacature »

Android developer

De functie Schiphol is een plek om te reizen, te verblijven en te werken. Door middel van data en technologie richten we op al deze gebieden het leef- en werkklimaat optimaal in en zorgen we voor een slimmere en efficiëntere operatie. Wij ontwikkelen nieuwe producten en diensten vanuit de wensen en behoeften van onze klanten, voorspellen passagier flows en testen digitale oplossingen om rijen en andere pijnpunten in het proces te verminderen. Met slimme feedback van sensortechnologie maken we zelfs data van toiletten en stoelen inzichtelijk en bruikbaar. Het Commercial Platform bestaat uit multidisciplinaire teams met een end-2-end verantwoordelijkheid voor

Bekijk vacature »

Pagina: « vorige 1 2

Ben van Velzen

Ben van Velzen

24/06/2017 22:44:31
Quote Anchor link
Dit is allemaal wel erg weinig.
Begin eens met de key_buffer_size te verhogen naar 128MB. Stel ook een innodb_buffer_pool_size in, bijvoorbeeld ook 128MB. Je hebt ruimte zat, dus je kan dit allemaal nog veel hoger maken. Misschien heeft een wat grotere query_cache_size ook nut voor je leessnelheid, bijvoorbeeld ook 128MB.

Dit zijn puur eerste getallen, je kan dit vrij fors verhogen indien gewenst. innodb_buffer_pool_size geeft je in de meeste gevallen de grootste winst, en deze wordt vaak enkele gigabytes groot gemaakt. 5-6GB op een 8GB server is niet ongewoon.
Gewijzigd op 24/06/2017 22:46:15 door Ben van Velzen
 
PHP hulp

PHP hulp

24/04/2024 17:40:00
 
Dennis WhoCares

Dennis WhoCares

24/06/2017 23:37:31
Quote Anchor link
Hi Ben,

ik heb ze naar 6GB gezet, ook innodb, maar.. het blijft net zo traag -.-
(ook de full processlist, laat alleen mijn query zien, dus zijn geen andere queries gaande)
 
Ben van Velzen

Ben van Velzen

25/06/2017 00:23:08
Quote Anchor link
Je kan niet alles klakkeloos zo hoog zetten, dan fiets je door je geheugen heen en ga je swap eten, en dat is ook weer traag. Je zult gericht waarden moeten tunen (en uiteraard ook tussentijds restarten).

Ook noem je het feit dat je op een VPS zit. Weet je de backing voor de storage hier ook? Als hier geen behoorlijke (SSD) cache laag tussen zit zal er altijd traagheid blijven, gewoon omdat de gemiddelde VPS storage environment beperkt is in het aantal iops dat je redelijkerwijs kunt doen. Je bent immers 1 van de velen die op dezelfde storage zitten te hameren.
Gewijzigd op 25/06/2017 00:36:08 door Ben van Velzen
 
Dennis WhoCares

Dennis WhoCares

25/06/2017 21:10:25
Quote Anchor link
Hi Ben,

Ik heb geen idee wat voor SSD enz erin zit

Ik heb met een optimizer en wat proberen en doen, de config aangepast:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
key_buffer_size         = 32M
max_allowed_packet      = 16M
thread_stack            = 256K
thread_cache_size       = 50
myisam-recover-options  = FORCE,BACKUP
max_connections        = 500
query_cache_limit       = 128M
query_cache_size        = 128M
innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 2
innodb_log_file_size           = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table          = 1
innodb_buffer_pool_size        = 8G


maar de query duurt nog steeds 58 seconden.
Behalve als de 'doel tabel' leeg is, dan is het 0.8 seconden genoeg om 22000 records te importeren.
Het updaten van bestaande tickets vanuit deze csv tabel duurt ook slechts een 0.7 seconden gemiddeld.
Dus ik denk dat er iets is met de query of de tabellen..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
INSERT INTO csvInsertTest (ticket_code,ticket_summary,ticket_uniquecode,ticket_source)
SELECT csv.ticket_code, csv.Summary,CONCAT('dimble_',csv.TicketCode)
FROM csvImport csv
LEFT JOIN csvInsertTest t ON t.ticket_uniquecode = CONCAT('dimble_',csv.TicketCode)
WHERE t.ticket_uniquecode IS NULL

Maar ik weet niet goed hoe ik dit het beste kan debuggen en fixen..



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT csv.ticket_code, csv.Summary,CONCAT('dimble_',csv.TicketCode)
FROM csvImport csv
LEFT JOIN csvInsertTest t ON t.ticket_uniquecode = CONCAT('dimble_',csv.TicketCode)
WHERE t.ticket_uniquecode IS NULL

Deze query alleen al werkt 57 seconden..
Gewijzigd op 25/06/2017 21:38:12 door Dennis WhoCares
 
Ivo P

Ivo P

25/06/2017 22:30:58
Quote Anchor link
voeg anders eens een kolom toe aan de tabel csvInsert.
laten we zeggen "gedaan" en maak dat een tinyint, default 0

je load-data query veranderen we in

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE csvTickets
      (ticket_code,ticket_summary,ticket_uniquecode,ticket_source)
      FIELDS TERMINATED BY ".$pdo->quote(';')."
      LINES TERMINATED BY ".$pdo->quote("\n"))


op regel 2 noem je, in dezelfde volgorde als in de csv-file de kolommen. En de kolom Gedaan, laten we achterwege

de update query wordt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
UPDATE dns_tickets dns
INNER JOIN csvTickets csv
ON dns.ticket_code = csv.TicketCode
SET dns.ticket_watchers = csv.Watchers
    csv.gedaan = 1
WHERE dns.ticket_source = 2


Alle records die in csvTickets staan met de waarde 0 bij Gedaan, zijn dus niet ge-update.

Die wil je dan mi. alsnog inserten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
INSERT INTO csvImport (ticket_code,ticket_summary,ticket_uniquecode,ticket_source)
     SELECT csv.TicketCode, csv.Summary,CONCAT('dimble_',csv.TicketCode)
     FROM csvImport csv
     WHERE gedaan = 0;


nb: i mis een kolom in deze laatste query: er wordt in 4 kolommen geinsert, maar de select heeft er maar 4. Maar ik kopieer die van jouw query hierboven
 
Dennis WhoCares

Dennis WhoCares

25/06/2017 23:01:33
Quote Anchor link
Ivo! De held!

zoiets vroeg ik idd in een paar comments terug, of er met de update ook de andere tabel kunnen updaten :D
Ik ga dit morgen gelijk ff toepassen.

over de NB
ja dat kan idd kloppen
kopieren planken en doen, dr zijb uiteraard meer velden, maar die doen er niet zo toe.
Ik zal ze morgen ff nalopen :)

ik neem ook aan dat t csv.gedaan moet worden :)
Nogmaals bedankt!
Morgenochtend gelijk testen en toepassen
 
Ivo P

Ivo P

26/06/2017 00:00:37
Quote Anchor link
er mist nog een komma in het SET gedeelte.

Als de kolomnamen voorkomen in meerdere tabellen _moet_ je de tabelnaam noemen.
Zo niet, dan is de tabelnaam optioneel.

Maar het is wel aan te raden, want over 17 maanden als je de code voer iets omoet aanpassen, dan weet je echt niet meer welke kolom bij welke tabel hoorde
 
Dennis WhoCares

Dennis WhoCares

29/06/2017 22:56:01
Quote Anchor link
ik wil hierbij even iedereen bedanken :)
Het werkt geheel als gewenst.
de extra kolom 'gedaan' erbij en vervolgens de records waar 'gedaan' 0 is gewoon importeren.

Dit werkt ook weer 0,8 seconden voor een extra 1000 records op het moment

Het enige rare :
als ik de csv file importeer en ik benoem de namen van de kolommen op volgorde zoals ze in de csv staan.
krijg ik niet het aantal imports terug als ik gebruik maak van return $pdo->exec($loadDataQuery)
Ik heb het geprobeerd om de kolommen gelijk na tabelnaam te noemen, en helemaal aan het einde na de settings (field en line seperation, en eventueel skip lines)

Dus ik heb deze even achterwege gelaten. Ik heb wel voor de zekerheid een paar 'dummy' kolommen gemaakt voor het geval dat ;-)
De opmaak van de csv zou in principe niet meer moeten/mogen veranderen.

Maar ik ben zeer tevreden en snelheid is van minuten naar enkele seconden gegaan, geweldig
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.