varchar vraagje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Web Application Developer

Dit ga je doen Samen met het team werk je aan de visualisatie functionaliteiten en hoe dit gebruikt kan worden in een operationele setting; Het ontwerpen, ontwikkelen, onderhouden en leveren van support betreft het Warehouse Management Systeem en de bijbehorende web visualisaties; Je gebruikt hierbijde tools WebGL en ASP.net; Het meewerken in implementatieprojecten; Het leveren van Go-Live Support; Sparren met jouw Amerikaanse collega's. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Web Application Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Java developer - procesoptimalisatie (Inhouse)

Functie Wat ga je doen als Java developer? Jij als back end developer hebt al enige ervaring opgedaan in jouw vakgebied. Voornamelijk het werken met Java en Spring spreekt jou aan. Jij wordt samen met je collega developers in het team verantwoordelijk voor de gehele back end van de applicatie. Hierdoor heb jij veel zelfstandigheid in je rol en zul je ook zelf beslissingen samen met de PO maken. Er wordt gewerkt volgens de SCRUM methodiek, om zo structuur te creëren in de werkzaamheden. Binnen de 2-wekelijkse sprints pak jij je taken op die samen met de PO afgestemd zijn.

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Full stack developer Python, React

Functie Jij als full stack developer komt binnen onze Technology afdeling te werken. Deze bestaat momenteel uit 15 man. De stack waarmee wij werken is voornamelijk Python, Javascript, React en GraphQL. Binnen deze afdeling wordt er met multidisciplinaire teams gewerkt aan verschillende projecten. Projecten duren vaak langer dan 3 maanden en je bent van begin tot eind vaak betrokken. Naast dat je als full stack ontwikkelaar aan de slag gaat ben je ook Consultant. Dit betekent dat je ook klantcontact hebt in je rol en werkshops geeft. De verhouding tussen deze werkzaamheden zijn ongeveer 70% development en 30% consultancy. Een

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

Junior/Medior Front-end developer

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Hands-on Solution Architect / Software Architect (

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 Solution Architect / Software Architect op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je werkt samen met gedreven DevOps teams, bestaande uit frontend, backend en middleware developers, testers, UX-designers. Samen met de teams ben je continu op zoek naar de beste oplossingen voor onze klanten. Als Solution Architect onderzoek

Bekijk vacature »

.NET developer

Functie Als .NET developer wordt jij onderdeel van ons ICT team. In dit multidisciplinaire team ben jij samen met onze senior .NET ontwikkelaar en medior .NET ontwikkelaar verantwoordelijk voor ons ERP systeem. In dit systeem (Navision) ga jij leren ontwikkelen. Wij bieden jou dan ook een gedegen opleiding aan, samen met de ondersteuning van onze Senior .NET developer. Daarnaast ga jij aan de slag met ons portaal geschreven in Sharepoint. Verder ben jij verantwoordelijk voor EDI verkeer en het ontwikkelen binnen het ERP systeem en andere toepassingen en rapportages. Van jou wordt verwacht dat jij het proces goed leert kennen

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Medior Java developer

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 »

SQL database developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als SQL database developer? Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het development team zijn wij op zoek naar een SQL database ontwikkelaar. Wil jij werken voor een groeiende werkgever in regio Breda waar jij de ruimte en tijd krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van logistieke processen; Je gaat projecten vanaf het begin tot het

Bekijk vacature »

Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Software Developer je verantwoordelijk voor: - Je werkt voortdurend aan oplossingen voor het op afstand bewaken en besturen van oogstmachines; - Het visualiseren van gegevens in rapporten, apps of andere formaten; - Voorspellend machineonderhoud; - Taakplanning; - Je schrijft aangepaste plug-ins om gegevens te importeren of exporteren

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

Bekijk vacature »
Ozzie PHP

Ozzie PHP

25/02/2017 21:07:17
Quote Anchor link
Hallo allemaal,

Een kort vraagje.

Als je een VARCHAR veld in je database hebt van bijv. 50 tekens, maakt het dan voor het geheugen of bestandsgrootte van de database iets uit of er wel of niet een waarde in dat veld staat?

Waarom ik dit graag wil weten ... ik wil ergens een hash gebruiken om een rij in een database te kunnen identificeren, maar dat hoeft maar 1x te gebeuren. Stel ik heb 1.000 rijen, dan heb ik dus ook 1.000 hashes. Aangezien ik de hash maar eenmalig nodig heb, zou ik het veld daarna kunnen leegmaken. Wordt daarmee de database dan ook kleiner? Of reserveert die VARCHAR(50) altijd dezelfde ruimte, ongeacht of je er wel of niet iets invult?
 
PHP hulp

PHP hulp

28/04/2024 09:10:39
 
Ben van Velzen

Ben van Velzen

25/02/2017 21:58:50
Quote Anchor link
De 50 bij een VARCHAR is een restrictie, geen directe reservering. Bij CHAR ligt dit anders. Verder is het maar de vraag of je database kleiner wordt na invullen/verwijderen van de waarde, omdat het nogal veel werk zou zijn om de data opnieuw te schikken wanneer dit niet strict noodzakelijk is.
 
Ozzie PHP

Ozzie PHP

25/02/2017 22:09:26
Quote Anchor link
Ben, dankjewel voor je toelichting.

Dus als ik je goed begrijp neemt een ingevuld VARCHAR veld altijd meer ruimte in dan een leeg VARCHAR veld?

>> Verder is het maar de vraag of je database kleiner wordt na invullen/verwijderen van de waarde, omdat het nogal veel werk zou zijn om de data opnieuw te schikken wanneer dit niet strict noodzakelijk is.

Ik snap niet echt wat je hiermee bedoelt.

Ik heb de hash eenmalig nodig en daarna niet meer. Wat gebeurt er dan als ik het veld leegmaak? Ik zou denken dat de database dan kleiner wordt, maar is dat niet zo?
 
Ben van Velzen

Ben van Velzen

25/02/2017 22:40:07
Quote Anchor link
>> Dus als ik je goed begrijp neemt een ingevuld VARCHAR veld altijd meer ruimte in dan een leeg VARCHAR veld?

Correct. De opslag bestaat uit een lengte gevolgd door de data, dus wanneer er niets ingevuld is staat er alleen een lengte van 0, meer niet.

>> Ik heb de hash eenmalig nodig en daarna niet meer. Wat gebeurt er dan als ik het veld leegmaak? Ik zou denken dat de database dan kleiner wordt, maar is dat niet zo?

Niet per definitie, je moet de inhoud van je database soortgelijk zien aan een bestandssysteem: er kan en zal fragmentatie optreden. Daarnaast krijg je nog te maken met ACID, de data binnen een transactie kan en mag niet van buiten de transactie veranderen. Dit wordt vaak (ook in innodb) opgelost met multiversion concurrency control, ofwel MVCC. Er worden altijd meerdere versies van dezelfde rij opgeslagen, een nieuwe versie per UPDATE. Het opschonen hiervan gebeurt wanneer gegarandeerd kan worden dat geen enkele transactie meer bezig is met een bepaalde versie, en ook hierbij kunnen gaten vallen in je datafile.
Gewijzigd op 25/02/2017 22:46:26 door Ben van Velzen
 
Ivo P

Ivo P

25/02/2017 22:58:45
Quote Anchor link
Je ziet vaak dat als een varchar veld leeg gemaakt wordt, de bestandsgrootte niet verandert. het lijkt er dan op, of de gebruikte ruimte blijft staan, net zolang tot er een actie is die genoeg actie veroorzaakt in de tabel om de ontstane gaten op te vullen.

Andere benadering zou voor jou mogelijk een losse tabel zijn met een id als FK naar je huidige tabel en een varchar voor je hash.
Na gebruik zou je in dat geval de rij kunnen delete-n.
 
Ben van Velzen

Ben van Velzen

25/02/2017 23:11:46
Quote Anchor link
Correct, maar de verwijdering van een rij op zichzelf maakt de ruimte ook niet direct vrij, tenzij het de laatste rij in je bestand is, en daar kun je geen voorspellingen over doen omdat de ruimte verdeeld wordt in pages. Je zou natuurlijk in dit specifieke geval een TRUNCATE kunnen doen, omdat de hashes maar eenmalig nodig zijn. Dit heeft geen last van genoemde problemen, omdat TRUNCATE een exclusief lock op de te legen table neemt, en gewoon alles wegmikt.
 
Ozzie PHP

Ozzie PHP

25/02/2017 23:35:38
Quote Anchor link
Hmmm ... oké ... een vrij ingewikkeld/technisch verhaal dus.

Het idee van de koppeltabel wat IVO voorstelt vind ik eigenlijk niet slecht. Dan kan ik de hashes ook mooi gescheiden houden van de echte data, en vaak zal het inderdaad gaan om de laatste rij.

Dat lijkt me dus een betere oplossing. Thanks!
 
Ben van Velzen

Ben van Velzen

26/02/2017 01:23:28
Quote Anchor link
>> Het idee van de koppeltabel wat IVO voorstelt vind ik eigenlijk niet slecht. Dan kan ik de hashes ook mooi gescheiden houden van de echte data, en vaak zal het inderdaad gaan om de laatste rij.

De laatste rij in je tabel is meestal niet gelijk aan de laatste rij in je datafile, doordat je te maken krijgt met onvoorspelbare herschikking. Vandaar dat je geen voorspellingen kan doen over wat je datafiles gaan doen.

Dit specifieke geval zou een reden zijn om "te ver" door te normaliseren, immers: je kunt efficienter je ruimte gebruiken wanneer je dit soort data integraal kan weggooien. Ik geloof dat OPTIMIZE je in andere gevallen zou kunnen helpen. Een database als PostgreSQL gebruikt hier VACUUM voor, of om de ruimte gegarandeerd vrij te geven VACUUM FULL. Dit rangschikt de data in de tabellen opnieuw, waardoor gaten verdwijnen. Het kan echter tot performance issues leiden op de korte termijn omdat je vlak na de opschoning te maken krijgt met het reserveren van nieuwe bestandsruimte. Voor MySQL geldt hetzelfde probleem, zie https://www.percona.com/blog/2010/12/09/mysql-optimize-tables-innodb-stop/
 
Ozzie PHP

Ozzie PHP

26/02/2017 02:33:11
Quote Anchor link
Het klinkt me allemaal nog te technisch (no offense, ligt aan mij) en ik weet niet of ik er op dit moment wel of niet iets mee 'moet' doen. Ik ga de hashes in ieder geval in een aparte koppeltabel zetten, en als ze niet meer nodig zijn dan verwijder ik de betreffende rij. Die koppeltabel zal dus altijd heel klein zijn en hooguit uit een paar rijen bestaan die zichzelf dan telkens weer 'opruimen'. Het voordeel is in ieder geval dat ik dan geen overbodige hashes hoef op te slaan, en dat er geen onnodig hash-veld in die andere tabel staat. Mocht het echt ooit traag worden, dan maak ik de database wel opnieuw aan ofzo :-)
 
Ben van Velzen

Ben van Velzen

26/02/2017 02:50:21
Quote Anchor link
Traagheid is een relatief begrip, en je zal over een beperkt aantal rijen (een aantal duizenden) geen significant verschil zien. Echter zal ook rij voor rij uit een koppeltabel verwijderen ook niet tot winst leiden. Hier geldt alles of niets. Of je verwijdert alles (en alleen TRUNCATE zal dit voor je doen) of je verandert niets aan je opstelling en je behaalt hetzelfde effect.

Ik moet hier wel bij zeggen dat ruimte niet meer is dan dat: ruimte. Als het om performance of efficientie gaat zou ik me eerder richten op de grootte van indexes en je caching instellingen. Hier haal je veel meer winst uit.

EDIT: het is inderdaad een technisch verhaal, maar databases zijn ook zeer technisch. Het is niet voor niets dat DBA's goed betaald worden, zij hebben de meeste kennis over wat je database doet (vooral intern) en wat tot performance kan leiden. Ik word onder andere hiervoor al jaren goed betaald.
Gewijzigd op 26/02/2017 02:52:58 door Ben van Velzen
 
Ozzie PHP

Ozzie PHP

26/02/2017 04:28:32
Quote Anchor link
Het zal niet een heel grote database zijn, dus het zal allemaal wel meevallen denk ik. En als het echt misgaat, huur ik je wel een dagje in ;-)
 
Thomas van den Heuvel

Thomas van den Heuvel

26/02/2017 16:17:14
Quote Anchor link
Indien je de hash maar voor één ding gebruikt (bijvoorbeeld, ik noem maar wat, voor een activatiecode voor een gebruikersaccount) en hier al een tabel voor is (bijvoorbeeld een tabel users, gebruikers whatever) dan zou ik die hash gewoon opnemen in die tabel en als je de hash niet meer nodig hebt die kolom NULL maken (zijn NULLable kolommen trouwens voor diskruimte efficiënter of maakt dit niet uit?).

De hash heeft in dat geval namelijk buiten die tabel niet zoveel bestaansrecht en zoals hierboven staat kun je (mogelijk meer) winst pakken op andere plaatsen.

Je zou bijvoorbeeld via een cron alle tabellen bij tijd en wijlen OPTIMIZEn, dat kan, in ieder geval voor snelheid, al wat uitmaken.

Oh, en als je uitsluitend van InnoDB gebruik maakt maakten bepaalde instellingen nogal veel uit. In mijn inmiddels wat gedateerde WAMP-opstelling zag ik dat mijn MySQL-(hulp)bestanden alleen maar groter werden terwijl ik geen data aan het toevoegen was maar zelfs aan het verwijderen / OPTIMIZEn was. Het heeft weinig zin om deze instellingen te wijzigen als de database al actief is maar je zou kunnen proberen om aparte hulpbestanden aan te houden per tabel middels de flag innodb_file_per_table. En daarnaast zou je andere settings kunnen tweaken zoals expire_logs_days (voor een rotatie van de bin-files) en innodb_log_file_size en innodb_buffer_pool_size. De simpelste manier om je database met deze nieuwe instellingen te laten werken lijkt mij het opnieuw opzetten hiervan (dump, drop, (edit: en rond dit punt even de instellingen wijzigen uiteraard :p) import). Het is wat moeilijker om dit on-the-fly te doen.
Gewijzigd op 26/02/2017 16:19:27 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

26/02/2017 16:55:38
Quote Anchor link
Hebben eigenlijk alle database types last van dit soort problemen?

Kan ik in plaats van InnoDB beter voor iets anders kiezen dan?
 
Thomas van den Heuvel

Thomas van den Heuvel

26/02/2017 23:36:19
Quote Anchor link
> Hebben eigenlijk alle database types last van dit soort problemen?
Geen idee eigenlijk.

> Kan ik in plaats van InnoDB beter voor iets anders kiezen dan?
Nou nee voor zo gauw ik weet niet, want InnoDB gebruik je voor echte relationele databases (foreign keys, transacties etc.).
 
Ozzie PHP

Ozzie PHP

26/02/2017 23:38:14
Quote Anchor link
Hmmm, oké thanks. Het blijft een vreemde materie die databases :-s
 



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.