import csv -> update other table

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior PHP Developer

Functieomschrijving Junior PHP Developer gezocht! Voor een opdrachtgever in de regio Gelderland zijn wij op zoek naar een Junior PHP Developer die onderdeel gaat worden van het ontwikkelingsteam van deze organisatie. In deze functie ga jij aan de slag met het schrijven van software voor de aansturing van en het managen van windparken en bijbehorende onderdelen. Hiernaast ga jij je bezighouden met het ontwikkelen, testen en onderhouden van diverse webapplicaties. Het team waarin je komt te werken bestaat uit 3 developers, hierdoor krijg je veel verantwoordelijkheid en de kans om jezelf verder te ontwikkelen. Er wordt echter wel van je

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 »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Senior developer (PHP en VB.NET)

Functie De development afdeling bestaat uit 2 teams. Het productteam (10 developers) is verantwoordelijk voor verschillende applicaties met als doel om zoveel mogelijk te automatiseren en uit te werken tot standaard software. Met diverse Solutions Architecten en ervaren developers denken ze voortdurend mee met hun klanten en bouwen ze de basis van het uiteindelijke maatwerk dat wordt geleverd. Hiernaast hebben ze een maatwerk/projectteam. Dit team bestaat momenteel uit 8 developers (junior tot senior) en is verantwoordelijk voor het maatwerk in hun klantprojecten. Momenteel zijn ze op zoek naar een senior developer die aan de slag gaat in het productteam. Hierin

Bekijk vacature »

C#.NET Developer

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

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 »

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving: De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van bromen snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie.De opdracht bestaat uit: het programmeren van de diverse modules;het tijdens demo's tonen van de

Bekijk vacature »

Front end developer Zorgplatform

Functie Jij als Front end ontwikkelen zult komen te werken samen met 1 PHP ontwikkelaar, 1 Python developer en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De Marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult als Front ender dus voornamelijk bezig zijn met het verbeteren van onze interfaces op onze verschillende producten. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere

Bekijk vacature »

.NET software developer

Functie omschrijving Voor een gewilde werkgever in omgeving Roosendaal zijn wij op zoek naar een back-end software developer met een aantal jaar werkervaring. Je krijgt een plekje in het workflow team en je zal betrokken worden bij het bouwen van nieuwe software, en het optimaliseren van bestaande code. Je werkt bij dit bedrijf in een Scrum team waarin je soms klantcontact hebt. Jouw werkzaamheden zullen er als volgt uit zien: Je krijgt een plekje op de in-house IT afdeling. Deze afdeling bestaat uit zo'n 12 collega's, verdeeld over verschillende specialisaties (BI, Beheer, Business software & workflow). De vacature staat open

Bekijk vacature »

Java Developer bij een jonge groeiende organisatie

Bedrijfsomschrijving Vind jij het als Java developer ook zo belangrijk dat een bedrijf je de ruimte en tijd geeft voor persoonlijke ontwikkeling? Dan zit je hier helemaal goed. Deze jonge organisatie is opgericht in 2018 en is ondertussen uitgegroeid tot een club van ongeveer 30 medewerkers. Het gaat hier om een echte Java club, die vrijheid en verantwoordelijkheid erg belangrijk vinden. Het bedrijf heeft een informele sfeer en de teams zijn erg hecht met elkaar. Ze delen graag de kennis en ervaringen met anderen, maar vinden andermans mening ook zeer belangrijk. De organisatie zet zich in voor ontwikkeling en besteed

Bekijk vacature »

Front end developer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers met passie voor hun vak. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van ontwerp en ontwikkeling zullen samenkomen in een proof of concept. Nadat is vastgesteld dat de oplossing voldoet aan de belangrijkste behoeftes worden producten of services gevalideerd door middel van korte iteraties. Hiermee zorgen ze ervoor dat het werk voldoet aan de technische vereisten en gebruikersbehoefte. Door het inzetten van de nieuwste technologieën die toekomstbestendig zijn weten ze klanten omver te blazen. Ook geven en organiseren ze veel

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Full Stack Developer

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail; Verantwoordelijk voor de front-end werkzaamheden; Naast de front-end werk je ook aan de backend. Hier ga je werken Als Full Stack Developer komt je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden je HBO ICT Informatica diploma in ontvangst mogen nemen? Of heb je een aantal jaar ervaring als Software Developer en ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een gewaardeerde werkgever in de regio van Goirle zijn wij op zoek naar een junior/medior Back-end Developer met affiniteit met MS Acess. Samen met een vooruitstrevend team ben je verantwoordelijk voor het ontwikkelen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL en affiniteit met MS Acess. Je bent klantvriendelijk en flexibel ingesteld en vindt het leuk om klanten te

Bekijk vacature »

Pagina: 1 2 volgende »

Dennis WhoCares

Dennis WhoCares

16/06/2017 08:06:05
Quote Anchor link
Hi all,

ik ben weer eens bezig om mijn imports te versnellen, almede door advies om gehele csv bestanden te importeren naar een tijdelijke tabel.
Dit werkt idd een heeeel stuk sneller ;-)

Nou heb ik 1 tabel : dns_tickets
en nog een tabel : csvTickets

normaliter deed ik per regel uit de csv een insert of update, op basis van de key.
Dat begint na 10.000-20.000 regels beetje langzaam te gaan ;-)

Dus vervolgens doe ik nou :
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
15
16
...
$pdo = new PDO("mysql:host=$host;dbname=$database",
        $username, $password,
        array(
            PDO::MYSQL_ATTR_LOCAL_INFILE => true,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        )
);
...
$stmt = $pdo->prepare("TRUNCATE csvTickets");
$stmt->execute();
$affectedRows = $pdo->exec("LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE csvTickets
      FIELDS TERMINATED BY ".$pdo->quote(';')."
      LINES TERMINATED BY ".$pdo->quote("\n"));
echo "Imported $affectedRows records";
$pdo->exec('DELETE FROM csvTickets WHERE TicketCode = "TicketCode"');


Dit werkt geweldig binnen een seconde is die al klaar met ALLE tickets te importeren.

Nou wou ik dus mijn dns_tickets tabel updaten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
UPDATE dns_tickets dns
INNER JOIN csvTickets csv
ON dns.ticket_code = csv.TicketCode
SET dns.ticket_watchers = csv.Watchers
WHERE dns.ticket_source = 2


Dit heb ik uitgevoerd in phpmyadmin om te kijken of het werkt.
Helaas loopt alles vast en is alles unresponsive.

Heeft iemand enig idee wat hier aan de hand is?
System time van Mysql sprong 90% en na 5 minuten gewacht te hebben heb ik via ssh de server een force reboot gegeven.

Ik hoopte dat ik zo nog sneller 20.000 records kon updaten van de al bestaande 170.000
Gewijzigd op 16/06/2017 10:03:13 door Dennis WhoCares
 
PHP hulp

PHP hulp

24/12/2024 13:53:20
 
Ivo P

Ivo P

16/06/2017 09:52:53
Quote Anchor link
zit er een index op ticket_code en TicketCode?

---
Als je hele tabellen leeg gooit, is TRUNCATE mytable doorgaans sneller dan DELETE FROM mytable

TRUNCATE gooit de tabel weg en maakt hem opnieuw, leeg, aan. En hij hoeft dus niet stuk voor stuk de records te verwijderen en meta-data als autoincrement tellers, index etc bij te werken.
 
Dennis WhoCares

Dennis WhoCares

16/06/2017 10:02:08
Quote Anchor link
Hi Ivo,

bedankt voor de tip om truncate te gebruiken.

Ehm, nee in principe zit er geen index op ticket_code en TicketCode
Ik kan csv.TicketCode wel een unique kunnen geven,
maar ticket_code zou heeeeel misschien niet uniek kunnen zijn.

Vergat trouwens de WHERE op te geven in m'n bericht.

Het kan zijn de ticket_code zelfde kan zijn, maar andere source.
 
Ivo P

Ivo P

16/06/2017 10:41:49
Quote Anchor link
index is niet per se hetzelfde als unique.

een primary key dwingt uniek af, maar een key alleen zou dat niet doen.

ik begrijp uit het verhaal dat zowel TicketCode als ticket_code niet per se uniek voorkomen in de tabellen?

ik zou dan in elk geval een index zetten op die beide kolommen.
En eentje op ticket_source zou ook kunnen.

met die laatste zou het gemakkelijker moeten worden om uit de 170.000 records de betreffende te vinden.

En de key op de *code kolommen zou het gemakkelijker moeten maken om de beide tabellen tegen elkaar te leggen, zonder steeds 20.000*20.000 records te moeten langs lopen.
 
Dennis WhoCares

Dennis WhoCares

16/06/2017 11:05:02
Quote Anchor link
Hi Ivo,
ik was net m'n comment aan het aanpassen :D

dns_tickets heeft wel een primary key op ticket_id
ik had daarnet csv.TicketCode een unique index gegeven en de update lijkt er per direct doorheen te gaan.

Is er nog een truukje om de eerst regel te laten vervallen ? zonder dat php de file hoeft te openen?
Of zou ik dat gewoon met shell_exec() moeten doen?
 
Ivo P

Ivo P

16/06/2017 11:09:55
Quote Anchor link
iets als

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;

Toevoeging op 16/06/2017 11:11:34:

https://dev.mysql.com/doc/refman/5.7/en/load-data.html

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
15
16
17
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name,...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...]
Gewijzigd op 16/06/2017 11:12:26 door Ivo P
 
Dennis WhoCares

Dennis WhoCares

16/06/2017 12:10:06
Quote Anchor link
Ivo, je bent een held!
Ik had idd de manual page eerst ff moeten kijken voordat ik ging vragen :)
 
Dennis WhoCares

Dennis WhoCares

18/06/2017 22:03:04
Quote Anchor link
Dag allen,

Dit is alleen om m'n vraag uit te breiden en of ik dit wel goed doe, in de trend van ... performance.
Ik weet aan de hand van hierboven:
- hoeveel tickets ik geimporteerd heb
- hoeveel tickets ik geupdate heb
- hoeveel tickets er 'nieuw' zijn (welke nog niet in productie tabel aanwezig zijn)

Deze missende tickets wil ik dus toevoegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
INSERT INTO csvInsertTest (ticket_code,ticket_summary,ticket_uniquecode,ticket_source) SELECT csv.TicketCode, csv.Summary,CONCAT('dimble_',csv.TicketCode) FROM csvImport csv WHERE NOT EXISTS (
    SELECT test.ticket_id FROM csvInsertTest test WHERE test.ticket_uniquecode = CONCAT('dimble_',csv.TicketCode)
)
 
Ben van Velzen

Ben van Velzen

18/06/2017 22:23:14
Quote Anchor link
Voor een wat snellere select zou je dan een index op ticket_uniquecode willen zetten. Ook zou ik de NOT EXISTS omschrijven naar een LEFT JOIN met een controle op NULL. Dat werkt doorgaans een stuk sneller omdat de database dan de data gewoon aan elkaar kan ritsen in plaats van per record je hele table doorzoeken.
Gewijzigd op 18/06/2017 22:26:11 door Ben van Velzen
 
Dennis WhoCares

Dennis WhoCares

19/06/2017 09:12:51
Quote Anchor link
Hi Ben,

zou je mij een voorbeeld kunnen geven hoe ik dat het beste kan toepassen ?
Het veld ticket_uniquecode is inderdaad Unique en een Index.
 
Ben van Velzen

Ben van Velzen

19/06/2017 10:55:03
Quote Anchor link
Zoiets?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
INSERT INTO csvInsertTest (ticket_code,ticket_summary,ticket_uniquecode,ticket_source)
SELECT csv.TicketCode, csv.Summary, CONCAT('dimble_',csv.TicketCode) FROM csvImport csv
LEFT JOIN csvInsertTest test ON test.ticket_uniquecode = CONCAT('dimble_',csv.TicketCode)
WHERE test.ticket_uniquecode IS NULL
 
Ivo P

Ivo P

19/06/2017 11:09:45
Quote Anchor link
zo ongeveer?

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 ON ticket_uniquecode = CONCAT('dimble_',csv.TicketCode)
WHERE csvInsertTest.ticket_uniquecode IS NULL


Alternatief voeg je een kolom toe aan de temp tabel en breid je de UPDATE query uit de openingspost uit met een kolom "gedaan" die je de waarde 1 geeft.

Wel moet je dan in de LOAD DATA query alle kolommen gaan noemen, omdat deze niet in de csv file staat.
Sowieso is dat wel verstandig, want mocht om een of andere reden de volgorde van de kolommen veranderen, gaat het heel erg mis.
 
Dennis WhoCares

Dennis WhoCares

21/06/2017 21:07:05
Quote Anchor link
dag allemaal, mijn excuses voor de late reactie, ondertussen ben ik van servers aan het migreren...
Ik kom hier later op terug, ik had het nog geprobeerd maar alsnog liep de cpu gebruik van sql in de 100 (4 keer)
csvInsertTest bevat 64000 records, csvImport 22000, waarvan 19722 al bestaan.
Tot m'n verbazing had ik meerdere 'index' op ticketcode in de csvInsertTest... Ook na dat opgelost te hebben, liep het nog steeds vast.
Ik moet even alles migreren en dan kom ik er weer op terug.

@Ivo, wat bedoel je met kolommen noemen ?
De LOAD DATA weet toch niet wat de kolom naam is van de file die die import.
Ik las iets over '@dummy' gebruiken enz... maar begreep het allemaal zo snel niet.
Ik zal t nog eens verder uitvogelen voordat ik meer vragen ga stellen hierover :)
 
Ivo P

Ivo P

21/06/2017 23:35:27
Quote Anchor link
stel je tabel heet mytabel en heeft 3 kolommen kolA, kolB en kolC

En laten we zeggen dan in voorbeeld.csv de data staat voor kolC, kolA, kolB (andere volgorde dan de volgorde - zo een tabel al kolommen op een zekere volgorde heeft-.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
LOAD DATA INFILE 'voorbeeld.csv'
INTO TABLE mytabel
(kolC, kolA, kolB)
 IGNORE 1 LINES;
 
Dennis WhoCares

Dennis WhoCares

22/06/2017 06:56:54
Quote Anchor link
Hi Ivo,

bedankt voor je reactie ik dacht al bijna da LOAD DATA de kolomnamen kon detecteren :D
 
Ben van Velzen

Ben van Velzen

24/06/2017 00:26:32
Quote Anchor link
Wanneer je last hebt van hoge cpu usage hoeft dat niet direct door de gebruikte query te komen, maar kan configuratie zelf ook een issue zijn. Wanneer een index bijvoorbeeld niet in geconfigureerde buffers passen krijg je een hoop geschuif met gegevens. Wat zijn bij de uitvoer de resultaten van bijvoorbeeld SHOW FULL PROCESSLIST, wat zeggen de logs (en schakel ook het slow query log even in) etc. Ook zegt 100% cpu niet zoveel, het zegt alleen maar dat je *een core* hard aanslingert (en dat is wat een server hoort te doen). Uiteraard is ook een EXPLAIN van de query handig. Toegegeven, explain in mysql is ruk, maar het is beter dan niets.
 
Dennis WhoCares

Dennis WhoCares

24/06/2017 21:09:04
Quote Anchor link
Hi Ben,

zou je mij wat meer 'data' kunnen geven over "Wanneer een index bijvoorbeeld niet in geconfigureerde buffers passen krijg je een hoop geschuif met gegevens."

De SHOW FULL PROCESSLIST laat de INSERT query zien, als zijnde: SEND DATA

Dit duurt gewoon ... minuten lang, onbegrijpelijk, terwijl het updaten van de data 9-12 seconden werk is.

Ik heb zojuist ff de query aangepast, naar voorbeeld van Ivo met LEFT JOIN ... WHERE ... IS NULL

Het duurde zojuist 69 seconden om 780 tickets van de 22000 toe te voegen... is dit begrijpelijk gedrag ?

Op de csvTabel staat een index op ItemCode
Op de tickets tabel staat een index op ID, source_id, uniquecode, en een fulltext op summary
Gewijzigd op 24/06/2017 21:11:24 door Dennis WhoCares
 
Ben van Velzen

Ben van Velzen

24/06/2017 21:24:09
Quote Anchor link
>> Het duurde zojuist 69 seconden om 780 tickets van de 22000 toe te voegen... is dit begrijpelijk gedrag ?
>> Op de tickets tabel staat een index op ID, source_id, uniquecode, en een fulltext op summary
Nee, normaliter moet je 22000 tickets in enkele seconden kunnen toevoegen, zo niet sneller. Heb je te maken met beschadigde indexes of iets dergelijks? Dit gebeurt in MyISAM erg snel. Probeer eens een REPAIR.

Wat zegt EXPLAIN ervan?
 
Dennis WhoCares

Dennis WhoCares

24/06/2017 21:33:41
Quote Anchor link
aan de hand van repair kom ik erachter dat de storage engine van de tabel met csv data, innodb is/was
Het duurde alsnog 67 seconden
eplain:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
+ Options
id     select_type     table     partitions     type     possible_keys     key     key_len     ref     rows     filtered     Extra     
1     INSERT     csvImportTest     NULL    ALL     NULL    NULL    NULL    NULL    NULL    NULL    NULL
1     SIMPLE     csv     NULL    ALL     NULL    NULL    NULL    NULL    20268     100.00     Using temporary
1     SIMPLE     t     NULL    index     NULL    ticket_uniquecode     66     NULL    21551     10.00     Using where; Not exists; Using index; Using join b...


Toevoeging op 24/06/2017 21:35:04:

p.s. dit draait nu op een nieuwe VPS server, 8 CPU 16GB RAM, ubuntu met laatste software versies. Dus het is nu niet meer zo'n drama, als voorheen, maar.. er is wel betere performance gewenst :(

Gebruikte Query:
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


Toevoeging op 24/06/2017 22:11:56:

Ik denk dat t m zit in de LEFT JOIN WHERE ... IS NULL

gewoonweg de tabel te kopieren en alle data overzetten duurt slechts een seconde.

Is het mogelijk om tijdens deze update:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
UPDATE dns_tickets dns
INNER JOIN csvTickets csv
ON dns.ticket_code = csv.TicketCode
SET dns.ticket_watchers = csv.Watchers
WHERE dns.ticket_source = 2


in de csv ook een veld te updaten ? (maar alleen als er in de tickets geupdate is ?)
Gewijzigd op 24/06/2017 21:39:17 door Dennis WhoCares
 
Ben van Velzen

Ben van Velzen

24/06/2017 22:22:47
Quote Anchor link
>> p.s. dit draait nu op een nieuwe VPS server, 8 CPU 16GB RAM
En heb je MySQL ook ingesteld dat hij dit geheugen kan gebruiken? Anders gaat dat nog geen kant op.
 
Dennis WhoCares

Dennis WhoCares

24/06/2017 22:27:23
Quote Anchor link
enig advies ? :D Ben hier nog nooit zo mee bezig geweest.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
key_buffer_size         = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8

query_cache_limit       = 1M
query_cache_size        = 16M

expire_logs_days        = 10
max_binlog_size   = 100M
 

Pagina: 1 2 volgende »



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.