effectieve update query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer .NET, C# voor een gaaf bedrijf in de omgeving van Utrecht! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Lees dan snel verder! Voor een opdrachtgever in de omgeving van Utrecht, zijn wij op zoek naar een Junior Software Developer. Werk jij graag aan verschillende projecten en ga je graag klanten op bezoek? Dan is dit de ideale functie voor jou! Binnen deze functie

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden je MBO of HBO ICT in ontvangst mogen nemen? Of ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een uitdagende werkgever in de regio van Tilburg zijn wij op zoek naar een ambitieuze back-end programmeur met affiniteit met MS Acess. Samen met een enthousiast team ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL, Maar affiniteit met MS Acess is nog belangrijker. Je bent sociaal naar klanten en flexibel ingesteld. Je denkt altijd in kansen en gaat graag de uitdaging aan. Verder

Bekijk vacature »

Mendix Developer

Functie Wat ga je doen als Mendix Developer? We leven in een wereld die snel ontwikkelt en veranderd, ook nemen bedrijfsbelangen toe en blijken risico’s moeilijker in te schatten, daarom wij op zoek naar Junior, Medior en Senior Developers die bedrijven kunnen helpen met hun screeningproces en zorgen dat deze efficiënt en 100 procent AVG compliant is. Het concept achter Mendix is duidelijk. De klant heeft een vraag/probleem. Dit kunnen we door middel van slimme software oplossen. In plaats van te werken met de nieuwste technieken en tools, wordt er gekozen voor het implementeren en maken van software dat op

Bekijk vacature »

Front end developer React

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

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 »

ERP Developer fleet managementsysteem

Wat ga je doen als ERP Developer fleet managementsysteem? Als ERP developer speel jij een belangrijke rol bij het doorvoeren van wijzigingen en verbeteringen binnen het fleet managementsysteem. Jouw expertise op het gebied van ERP systemen stelt jou in staat om de applicatie optimaal te laten functioneren en te blijven ontwikkelen. Als lid van het IT-team werk je nauw samen met andere developers en het business team om het fleet managementsysteem te integreren met andere systemen. Je bent verantwoordelijk voor het ontwikkelen van nieuwe functionaliteiten en het implementeren van verbeteringen op basis van de wensen en eisen van onze klanten.

Bekijk vacature »

Senior Product Developer

Functieomschrijving Als senior Product Developer ben je verantwoordelijk voor bestaande mobiliteitsproducten en de ontwikkeling van nieuwe mobiliteitsconcepten. Met behulp van diverse klantonderzoeken, klantsessies en salesmeetings zorg je ervoor dat je de veranderende mobiliteitsbehoeften in de markt kent. Hier speel je op in door innovatieve, flexibele, efficiënte en duurzame vervoersoplossingen te bedenken, te ontwikkelen, te implementeren en uiteindelijk samen met Sales en Marketing collega’s in de markt te zetten. Je initieert en neemt deel aan (internationale en afdeling overschrijdende) projecten, vaak in de rol van projectleider. In die rol bewaak je de voortgang, coördineer je de activiteiten en zorg je voor

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

Bekijk vacature »

Junior Java Developer

Dit ga je doen Full stack web- en appdevelopment; Vertalen van de functionele wensen naar de technische specificaties; Sturing geven aan/klank board zijn voor de software teams; Trainen van de software teams; Sparren met klanten; Meedenken over architectuur. Hier ga je werken De organisatie is een bureau welke websites en mobiele applicaties bouwt voor verschillende toonaangevende organisaties. Hierbij richten zij zich voornamelijk op de sectoren leisure, overheid en zorg. De sfeer intern kenmerkt zich door informaliteit, gezelligheid en ambitie. Ze werken dag in dag uit samen om mooie producten op te leveren voor hun klanten. Op dit moment zijn er

Bekijk vacature »

Java/Kotlin Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »
Michael schouman

michael schouman

18/02/2011 10:52:12
Quote Anchor link
Hoi allen,

Nieuw op het forum maar niet nieuw met php. Althans het is alweer een tijd geleden dus wel wat roestig. Maar ik heb besloten om mij er 100% in te verdiepen maar daarvoor heb ik zo nu en dan wat hulp nodig.

Zo genoeg voorstelrondje ik begin meteen met een vraag. Dit is een vraag die mij overigens al lang bezig houdt maar nu pas echt nodig is om uit te zoeken.

Ik heb een tekst bestand die we krijgen van een leverancier. Deze lees ik uit en maak er een array van. Die array wordt gebruikt in een update query om de voorraad te update in een mysql database (die, je raadt het al, achter een website hangt)

Quote:
"UPDATE ".$db.".products SET voorraad=".$voorraad." WHERE voorraad < ".$voorraad." AND barcode=".$parts[0]."";


Nu is die array vrij groot en duurt dit script zo lang dat de server hem afkapt. Nu kan ik mij niet voorstellen dat dit normaal is...

Hoe verwerk ik deze query op een correcte manier zodat de server er niet bijna in stikt?

Alvast bedankt voor de hulp :-)
 
PHP hulp

PHP hulp

22/12/2024 06:04:16
 
Jelle -

Jelle -

18/02/2011 10:55:46
Quote Anchor link
Je kan je file lezen per record en dat dan meteen in de database te trappen ipv eerst in een array
 
Michael schouman

michael schouman

18/02/2011 11:01:17
Quote Anchor link
maar dan voert hij toch evengoed elke regel appart uit? Dat lijkt mij juist niet de bedoeling namelijk... Mits ik je niet helemaal goed volg?
 
Jelle -

Jelle -

18/02/2011 11:04:03
Quote Anchor link
Michael schouman op 18/02/2011 11:01:17:
maar dan voert hij toch evengoed elke regel appart uit? Dat lijkt mij juist niet de bedoeling namelijk... Mits ik je niet helemaal goed volg?

Nou als je 10000 dingen in een array rost is het niet de query waar php om zeurt maar om de array.

10000 keer een query rossen hoor je niemand klagen als er goeie indexen op je velden liggen (bvb een unique index op je barcode)

Ik neem aan dit dit niet elke minuut gebeurd maar 1 keer per dag

Toevoeging op 18/02/2011 11:09:02:

Als je de tabel steeds moet updaten zou ik er een InnoDB tabel van maken
Gewijzigd op 18/02/2011 11:04:54 door Jelle -
 
Michael schouman

michael schouman

18/02/2011 11:10:27
Quote Anchor link
euh... tja ik heb de opzet niet zelf gebouwd dus met dit soort zaken is in eerste instantie weinig rekening gehouden. Helaas.

Die unique index staat niet op het barcode veld helaas.

Dus ik ben bang dat het toch anders moet.

Ik zat zelf te denken aan het volgende:

Eerst een select op de regels die dus echt voldoen aan het statement en dan pas een update. Dat zou het aantal regels toch wel moeten halveren.

Hoe klinkt dat?
 
Jelle -

Jelle -

18/02/2011 11:17:49
Quote Anchor link
Ik neem aan dat je barcode veld wel unique is door de database toch?
Dan kan je een unique key creeren door dit uit te voeren
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ALTER TABLE <table> ADD UNIQUE (<column>)


Hoeveel records heeft je tabel?
 
Michael schouman

michael schouman

18/02/2011 11:22:23
Quote Anchor link
de tabel products heeft 18,708 rows. Het barcode veld is in die zin wel unique ja.

Maar, voor de beeldvorming, in hoeverre is dit echt nodig? Wat gebeurt er precies als ik jou advies opvolg?
 
Jelle -

Jelle -

18/02/2011 11:29:01
Quote Anchor link
Michael schouman op 18/02/2011 11:22:23:
de tabel products heeft 18,708 rows. Het barcode veld is in die zin wel unique ja.

Maar, voor de beeldvorming, in hoeverre is dit echt nodig? Wat gebeurt er precies als ik jou advies opvolg?

Nou als je het veld een unique id geeft hoeft je query alleen de index te volgen en dat duurt ongeveer 0.0006 seconde.

Als je er geen unique id op zet dan moet je query de hele tabel scannen om elk record te gaan vergelijken of het veld jouw barcode is en dat kan wel even duren.

Zeg jij moet 18,708 updates doen en je tabel heeft 18,708 records.
Dan onderzoekt de tabel met unique key 18,708 in totaal

En zonder unique key 349989264

Toevoeging op 18/02/2011 11:32:38:

In ieder geval: Je unique key zorgt ervoor dat je query snel gaat (zoals je wou in je openings post)

En verders om je script ook sneller te laten gaan moet je de query per record dat je uitleest uitvoeren en niet alle 19000 eerst opslaan in een array
Gewijzigd op 18/02/2011 11:32:48 door Jelle -
 
Michael schouman

michael schouman

18/02/2011 11:34:06
Quote Anchor link
Oke, das een aanzienlijk verschil.

Als je met id bedoeld gewoon dat elke row een id heeft dan is dat wel al zo, elk product heeft een unique id... Dat spreekt voor zich haha.

Maar dan zou ik een select moeten doen op de barcode (aangezien dat het enige is wat overeenkomt tussen file en database) om vervolgens de id te gebruiken in een update statement?

Edit:


$idq = "SELECT `id` from ".$db.".products WHERE voorraad<".$voorraad." AND barcode=".$parts[0]."";

$result = mysql_query($idq);
while ($row = mysql_fetch_array($result)) {
echo "Kleiner dan:";
echo $row["id"]. "<br />";
}

$uq = "UPDATE ".$db.".products SET voorraad=".$voorraad." WHERE ".$row[id]."";

Zoiets?
Gewijzigd op 18/02/2011 11:45:07 door michael schouman
 
Jelle -

Jelle -

18/02/2011 12:06:58
Quote Anchor link
Nee dat hoeft niet misschien was mijn unique id verwarrend.
Je barcode is je relatie tussen de file en je database. Je moet dus zorgen dat je barcode een goeie index heeft. Aangezien je barcode in je database unique is kan je daar een unique key op leggen (zie vorige posts)

Als je nu een update of select doet met barcode = 'iets' dan kan mysql snel vinden wat je bedoeld aangezien het een goeie index heeft op barcode (een unique key is een index)

Dus je query in je openings post zal doordoor een snelle query worden en kan je behouden
 
Michael schouman

michael schouman

18/02/2011 13:26:45
Quote Anchor link
ow shit ik zie net dat er ook lege velden zitten in 'barcode' maakt dat uit?

En ik zit even te kijken in phpmyadmin om toch even te controleren of er geen index bij staat.

screenshotje:
Afbeelding

Ik weet niet of dat nou goed is of niet eigenlijk
Gewijzigd op 18/02/2011 13:30:44 door michael schouman
 
Jelle -

Jelle -

18/02/2011 13:56:07
Quote Anchor link
Michael schouman op 18/02/2011 13:26:45:
ow shit ik zie net dat er ook lege velden zitten in 'barcode' maakt dat uit?

Ja dat maakt uit dan kan je geen unique index erop zetten. Je kan er wel een gewone index opzetten (kan gewoon via phpmyadmin) en dat zou je query ook versnellen.

Je hebt overgens wel veel indexes
Gewijzigd op 18/02/2011 13:56:38 door Jelle -
 
Michael schouman

michael schouman

18/02/2011 14:59:05
Quote Anchor link
Maar nu gaat dat hele feest eigenlijk niet door en ben ik terug bij af?
 
Jelle -

Jelle -

18/02/2011 15:41:01
Quote Anchor link
Michael schouman op 18/02/2011 14:59:05:
Maar nu gaat dat hele feest eigenlijk niet door en ben ik terug bij af?

Nee je hoeft alleen een index op barcode te leggen en je hebt hetzelfde effect als unique (alleen unique geeft net iets minder overhead maar dat kan niet op je column wat die is dus niet unique vanwege de empty values die je hebt)

Dus gooi een index op barcode en je script is sneller
Gewijzigd op 18/02/2011 15:41:23 door Jelle -
 
Michael schouman

michael schouman

18/02/2011 16:12:47
Quote Anchor link
Hmm ik heb gedaan wat je hebt gezegt en mijn script weer teruggezet naar wat ik in eerste instantie eigenlijk al had maar het duurt nog steeds lang :-(

Edit:

Ok maar hij heeft het wel gedaan zonder errors :-)
Gewijzigd op 18/02/2011 16:37:05 door michael schouman
 



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.