Inloggen
Inloggen

MySQL-datatypen: overzicht, gebruiksvoorbeelden en best practices

MySQL-datatypen: overzicht, gebruiksvoorbeelden en best practices
Hostman Team
Technical writer
MySQL-dienst
16.01.2026
Reading time: 6 min

Bij het opzetten van een database in MySQL moet de gebruiker aan elke kolom in een tabel een naam en een datatype toewijzen. Dit proces helpt het systeem precies te begrijpen welk type gegevens wordt opgeslagen en hoe deze moeten worden verwerkt, en bepaalt daarnaast hoeveel geheugen nodig is.

Er zijn verschillende hoofdklassen van datatypen in MySQL-tabellen, waaronder numerieke, teken-, datum- en tijdtypen, en andere. Elke klasse bevat meerdere specifieke datatypen. Het is belangrijk om deze correct te definiëren tijdens de initiële fase van het aanmaken van tabellen om problemen te voorkomen zodra de volledige databasestructuur is opgebouwd.

Dit artikel beschrijft de belangrijkste MySQL-datatypen, hun structuur, geldige waarden en aanbevolen gebruik.

Numerieke typen

MySQL ondersteunt alle standaard numerieke SQL-datatypen die worden gebruikt om getallen op te slaan. Dit artikel behandelt:

  • Gehele getallen

  • Kommagetallen (floating point)

  • Vaste-kommagetallen (fixed point)

Elk type wordt hieronder verder toegelicht.

Gehele getallen (Integers)

Gehele getaltypen worden gebruikt om gesigneerde of ongesigneerde gehele getallen op te slaan. Gesigneerde typen kunnen zowel positieve als negatieve waarden bevatten, terwijl ongesigneerde typen alleen positieve waarden opslaan, waardoor het bereik effectief wordt verdubbeld.

Er zijn vijf hoofdtypen gehele getallen: TINYINT, SMALLINT, MEDIUMINT, INT en BIGINT. Het belangrijkste verschil is het waardenbereik dat ze kunnen opslaan — hoe groter het bereik, hoe meer geheugen nodig is. Het is belangrijk om het juiste type te kiezen voor efficiënt geheugengebruik.

Type

Geheugen (bytes)

Gesigneerd bereik

Ongesigneerd bereik

TINYINT

1

−2⁷ tot 2⁷−1

0 tot 2⁸−1

SMALLINT

2

−2¹⁵ tot 2¹⁵−1

0 tot 2¹⁶−1

MEDIUMINT

3

−2²³ tot 2²³−1

0 tot 2²⁴−1

INT

4

−2³¹ tot 2³¹−1

0 tot 2³²−1

BIGINT

8

−2⁶³ tot 2⁶³−1

0 tot 2⁶⁴−1

Het specificeren van een lengte (bijv. MEDIUMINT(6)) heeft geen invloed op het waardenbereik. Het is puur cosmetisch en wordt door sommige tools gebruikt om kortere getallen met spaties op te vullen.
Met het attribuut ZEROFILL worden in plaats daarvan nullen gebruikt. Bijvoorbeeld:
SMALLINT(8) ZEROFILL toont 256 als 00000256.

Kommagetallen (Floating-point numbers)

Deze typen worden gebruikt om benaderende numerieke waarden op te slaan. MySQL laat toe om de precisie als volgt te definiëren:

FLOAT(p)

Waarbij p de precisie is van 0 tot 53.

  • Als p < 25, wordt FLOAT (enkele precisie) gebruikt.

  • Anders wordt DOUBLE (dubbele precisie) gebruikt.

Type

Geheugen (bytes)

Waardenbereik

FLOAT

4

~±3,4028 × 10³⁸

DOUBLE

8

~±1,7976 × 10³⁸

Vaste-kommagetallen (Fixed-point numbers)

Vaste-kommagetallen worden gebruikt om exacte waarden met een gespecificeerde precisie op te slaan. Hiervoor worden DECIMAL of NUMERIC gebruikt, meestal bij financiële berekeningen waar afronding niet acceptabel is.

Definitie:

DECIMAL(M, D)

  • M: totaal aantal cijfers (max. 65, standaard 10)

  • D: aantal cijfers na de komma (0–30, standaard 0)

Voorbeeld:

DECIMAL(6, 3)

Slaat waarden op van -999.999 tot 999.999.
DECIMAL en NUMERIC zijn functioneel gelijk.

Tekentypen (Character types)

Voor het opslaan van korte teksten gebruikt MySQL voornamelijk CHAR en VARCHAR. Ze lijken op elkaar, maar verschillen in opslagwijze.

CHAR slaat een tekenreeks met vaste lengte op (0 tot 2⁸−1 tekens), gedefinieerd bij het aanmaken van de tabel. Kortere invoer wordt opgevuld met spaties.

VARCHAR slaat een tekenreeks met variabele lengte op (0 tot 2¹⁶−1 tekens). Alleen de daadwerkelijke tekens worden opgeslagen, plus 1 byte om de lengte vast te leggen.

Als een tekenreeks langer is dan toegestaan voor CHAR of VARCHAR, wordt deze afgekapt.

Als CHAR en VARCHAR in één tabel worden gecombineerd, converteert MySQL CHAR automatisch naar VARCHAR.

Vergelijking van CHAR(5) en VARCHAR(5)

String

CHAR(5)

VARCHAR(5)

'A'

'A '

'A'

'Hello'

'Hello'

'Hello'

'Example'

'Examp'

'Examp'

Tekst- en binaire typen

Het datatype TEXT wordt gebruikt voor grote tekstgegevens, terwijl BLOB bedoeld is voor binaire gegevens zoals afbeeldingen, gecompileerde code of audio.

Belangrijkste verschillen:

  • BLOB: sortering en vergelijkingen zijn hoofdlettergevoelig

  • TEXT: sortering en vergelijkingen zijn niet hoofdlettergevoelig

MySQL kan TEXT- en BLOB-velden niet volledig indexeren en ondersteunt geen sortering via volledige veldindexen.
Als de invoer groter is dan toegestaan, wordt deze afgekapt.

TEXT-typen

Type

Geheugen (bytes)

Max. tekens

TINYTEXT

2⁸−1

tot 2⁸−1

TEXT

2¹⁶−1

tot 2¹⁶−1

MEDIUMTEXT

2²⁴−1

tot 2²⁴−1

LONGTEXT

2³²−1

tot 2³²−1

BLOB-typen

Type

Geheugen (bytes)

Max. bytes

TINYBLOB

2⁸−1

tot 2⁸−1

BLOB

2¹⁶−1

tot 2¹⁶−1

MEDIUMBLOB

2²⁴−1

tot 2²⁴−1

LONGBLOB

2³²−1

tot 2³²−1

Datum en tijd

MySQL biedt verschillende datatypen voor datum- en tijdinformatie:

Type

Geheugen (bytes)

Beschrijving

DATE

3

Alleen datum in formaat YYYY-MM-DD

DATETIME

8

Datum en tijd in YYYY-MM-DD HH:MM:SS

TIMESTAMP

4

Zoals DATETIME, maar kleiner bereik (1970–2038)

TIME

3

Tijd van −838:59:59 tot 838:59:59

YEAR

1

Jaar in YYYY-formaat

JSON

MySQL ondersteunt sinds versie 5.7.8 een native JSON-datatype met de volgende voordelen:

  • Automatische validatie van geldige JSON

  • Geoptimaliseerde binaire opslag voor snellere queries

Het geheugengebruik is vergelijkbaar met LONGTEXT.

Samengestelde typen (Composite types)

MySQL biedt speciale tekentypen met vooraf gedefinieerde waarden:

  • ENUM: slaat één waarde op uit een lijst (tot 2 bytes)

  • SET: kan meerdere waarden tegelijk opslaan (tot 26, max. 8 bytes)

Voorbeeld

ENUM('a', 's', 'd')

Toegestane waarden: 'a', 's', 'd'

SET('a', 's', 'd')

Toegestane combinaties:
'a', 's', 'd', 'a,s', 'a,d', 's,d', 'a,s,d' of ''

Dubbele invoer zoals ('a','s','a') wordt automatisch ontdubbeld en opgeslagen als 'a,s'.

Conclusie

Dit artikel behandelde de meest gebruikte MySQL-datatypen voor het definiëren van tabelkolommen. Met deze kennis kunnen gebruikers geschikte datatypen kiezen en hun databasestructuur efficiënt ontwerpen. Voor minder gangbare datatypen wordt verwezen naar de officiële MySQL-documentatie.

Met Hostman cloud-databases kun je praktisch werken met MySQL en zijn datatypen. Belangrijke voordelen zijn:

  • Onderhoud en configuratie door de provider

  • Hoge beschikbaarheid en betrouwbaarheid

  • Automatische back-ups

  • Snelle horizontale en verticale schaalbaarheid

  • Continue werking via clusterreplicatie

  • Gebruik van cloudplatform-compute-resources

MySQL-dienst
16.01.2026
Reading time: 6 min

Vergelijkbaar

MySQL-dienst

Hoe MySQL installeren op Debian

Het installeren van MySQL op Debian biedt een robuuste en flexibele database-infrastructuur die geschikt is voor een breed scala aan toepassingen en diensten. MySQL staat bekend om zijn schaalbaarheid, betrouwbaarheid en stabiliteit. Een correcte configuratie zorgt voor efficiënte werking en betere prestaties van het databasesysteem. Deze combinatie is bijzonder waardevol voor systeembeheerders, database-analisten en bedrijven die een betrouwbare oplossing zoeken voor het beheren van grote hoeveelheden gegevens. Bovendien maken de uitgebreide documentatie en community van MySQL het eenvoudiger om problemen op te lossen en de werking te optimaliseren. In deze handleiding laten we stap voor stap zien hoe je MySQL op Debian installeert en configureert. Hoe MySQL installeren op Debian Los repositorios predeterminados no contienen el paquete del servidor de bases de datos MySQL en Debian. Para instalarlo en un sistema Linux, siga las instrucciones que se indican a continuación. Descargaremos la versión más reciente de MySQL. Stap 1: Download het MySQL-pakket Download het repository-configuratiebestand van MySQL in .deb-indeling: wget https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb Let op: Controleer op de officiële MySQL-website of dit de meest recente versie is. Stap 2: Installeer het configuratiepakket van MySQL Gebruik het .deb-bestand om de installatie te initialiseren via dpkg: sudo dpkg -i mysql-apt-config_0.8.30-1_all.deb Beantwoord de vragen in de configuratie-interface. Selecteer bijvoorbeeld "MySQL Server & Cluster" en druk op Enter. Om een specifieke versie te kiezen (zoals mysql-8.4-lts), scroll omlaag in de lijst, selecteer de gewenste versie en bevestig met OK. Stap 3: Update het systeem Werk de pakketindex bij om de nieuwe MySQL-informatie te verwerken: sudo apt update Stap 4: Installeer MySQL Debian maakt het installeren van MySQL eenvoudig via het standaardpakketbeheersysteem. Gebruik het volgende commando: sudo apt install mysql-server -y Tijdens de installatie wordt je gevraagd een root-wachtwoord in te stellen. Kies een sterk wachtwoord en bevestig. Controleer of de installatie gelukt is met: mysql --version Stap 5: Beheer de MySQL-dienst Stel MySQL zo in dat het automatisch start bij het opstarten van de server: sudo systemctl enable mysql Start vervolgens de MySQL-dienst handmatig: sudo systemctl start mysql Controleer de status van de dienst: sudo systemctl status mysql Voordat je poort 3306 opent voor externe clients, raden we aan om onze handleiding Een SSH-tunnel maken voor MySQL te bekijken. Hiermee kun je verbindingen via SSH tunellen en voorkom je dat MySQL direct via het internet toegankelijk is. Stap 6: Beveilig de MySQL-installatie Het root-wachtwoord dat je tijdens de installatie hebt ingesteld, beschermt het hoofdgebruikersaccount van MySQL. Maar MySQL wordt standaard geïnstalleerd met enkele onveilige instellingen, zoals anonieme gebruikers en de mogelijkheid tot root-toegang op afstand. Om de installatie beter te beveiligen, gebruik je het volgende script: sudo mysql_secure_installation Je wordt gevraagd of je het onderdeel VALIDATE PASSWORD wilt inschakelen om sterke wachtwoorden af te dwingen. Typ Y en druk op Enter als je dat wilt. Daarna moet je enkele beveiligingsopties instellen: Stel een root-wachtwoord in: Kies een sterk wachtwoord en voer het opnieuw in ter bevestiging. Selecteer indien gewenst het gewenste beveiligingsniveau (bijv. niveau 2 voor alleen sterke wachtwoorden).   Verwijder anonieme gebruikers: Typ Y en druk op Enter om deze accounts te verwijderen.   Schakel root-toegang vanaf externe hosts uit: Typ Y om deze optie te blokkeren en zo aanvallen van buitenaf te beperken.   Verwijder de testdatabase: Typ Y om deze onnodige standaarddatabase te verwijderen. Laad de rechten opnieuw in: Druk op Enter om alle wijzigingen direct toe te passen. Stap 7: Toegang tot MySQL Gebruik de MySQL-clienttool om verbinding te maken met de database en toegang te krijgen tot de MySQL-console. Voer het root-wachtwoord in dat je tijdens de installatie hebt ingesteld. Je komt dan terecht in de MySQL-shell, waar je algemene opdrachten kunt uitvoeren op de database. sudo mysql -u root -p Stap 8: Basisbewerkingen in MySQL Het is een goede praktijk om voor jouw applicaties een aparte database en gebruiker aan te maken in plaats van de rootgebruiker te gebruiken. Volg de onderstaande instructies: Maak een database aan: Maak eerst een database aan. In dit voorbeeld gebruiken we hostmandb: CREATE DATABASE hostmandb; Toon alle databases: Bekijk de lijst met databases om te bevestigen dat hostmandb is aangemaakt: SHOW DATABASES; Maak een nieuwe gebruiker aan: Creëer een nieuwe gebruiker met een sterk wachtwoord. In dit voorbeeld maken we gebruiker minhal met het wachtwoord Qwer@1234. Vervang deze waarden door je eigen gegevens: CREATE USER 'minhal'@'localhost' IDENTIFIED BY 'Qwer@1234'; Ken rechten toe aan de gebruiker: Verleen de gebruiker volledige toegang tot de hostmandb database: GRANT ALL PRIVILEGES ON hostmandb.* TO 'minhal'@'localhost'; Activeer de nieuwe rechten: Voer dit commando uit om de wijzigingen toe te passen: FLUSH PRIVILEGES; Verlaat de MySQL-shell: Gebruik het volgende commando om af te sluiten: EXIT; Test toegang als nieuwe gebruiker: Log in bij MySQL als de gebruiker minhal om de toegang te testen: sudo mysql -u minhal -p Voer het wachtwoord van minhal in wanneer daarom wordt gevraagd. Controleer vervolgens of de database toegankelijk is: SHOW DATABASES; Stap 9: Configureer externe toegang Als je MySQL op afstand wilt benaderen vanaf een andere server of client, moet je de server configureren om externe verbindingen toe te staan. Volg deze stappen: Open het configuratiebestand van MySQL: sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Zoek de regel met bind-address en wijzig deze: bind-address = 0.0.0.0 Herstart de MySQL-dienst om de wijziging toe te passen: sudo systemctl restart mysql Geef toegang aan de externe gebruiker: sudo mysql -u root -p GRANT ALL PRIVILEGES ON hostmandb.* TO 'minhal'@'localhost';FLUSH PRIVILEGES;EXIT; Stap 10: Configureer de firewall Als er een firewall actief is op je server, moet je poort 3306 openen om MySQL-verkeer toe te staan. Volg de onderstaande stappen: Sta verkeer via MySQL toe: sudo ufw allow mysql Activeer de firewall (indien nog niet actief): sudo ufw enable Laad de firewall opnieuw in om wijzigingen toe te passen: sudo ufw reload Stap 11: Back-up en herstel Regelmatige back-ups zijn essentieel om gegevensverlies te voorkomen. MySQL biedt de mysqldump-tool voor het maken van back-ups. Back-up van één enkele database maken: Gebruik het volgende commando om een back-up te maken van de hostmandb database als een .sql-bestand: sudo mysqldump -u root -p hostmandb> hostmandb_backup.sql Back-up van alle databases maken: Om een back-up te maken van alle databases op de server: sudo mysqldump -u root -p --all-databases > all_databases_backup.sql Een specifieke database herstellen: Gebruik het volgende commando om de back-up van hostmandb te herstellen: sudo mysql -u root -p hostmandb < hostmandb_backup.sql Stap 12: Optimaliseer MySQL (optioneel) Afhankelijk van de werklast en beschikbare serverbronnen kun je instellingen aanpassen om de prestaties van MySQL te optimaliseren. De volgende stappen helpen je om MySQL efficiënter te laten draaien: Pas de grootte van de InnoDB Buffer Pool aan: De InnoDB buffer pool slaat gegevens en indexen in het geheugen op. Het vergroten van deze buffer kan de prestaties verbeteren. Open het MySQL-configuratiebestand: sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Voeg de volgende regel toe of pas deze aan: innodb_buffer_pool_size = 1G Pas de waarde aan op basis van het beschikbare RAM-geheugen op je server. Schakel query caching in: De query cache slaat resultaten van SELECT-query's op. Het inschakelen ervan kan de prestaties verbeteren bij herhaald gebruik van dezelfde query's. Bewerk het .cnf-configuratiebestand: sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Voeg de volgende regels toe of bewerk ze indien nodig: query_cache_type = 1query_cache_size = 64M Optimaliseer database-tabellen: Optimaliseer regelmatig je tabellen (zoals de customers-tabel in hostmandb) om verspilde ruimte terug te winnen: USE hostmandb;OPTIMIZE TABLE customers; Analyseer de prestaties: Gebruik tools zoals MySQL Workbench of mysqltuner om inzicht te krijgen in de werking van je database en suggesties te krijgen voor optimalisatie. Installeer mysqltuner met: sudo apt install mysqltuner Voer mysqltuner uit om aanbevelingen te bekijken: sudo mysqltuner Conclusie Het opzetten van een MySQL-omgeving is essentieel in de hedendaagse digitale wereld. Door deze gids te volgen kun je MySQL veilig installeren, configureren en gebruiken. Deze aanpak verhoogt niet alleen de beveiliging, maar verbetert ook de efficiëntie van onderhoud op afstand. Het helpt om inbreuken te voorkomen en de vertrouwelijkheid van je gegevens te waarborgen. In dit artikel heb je een gedetailleerde handleiding gekregen voor de installatie van MySQL op Debian. We raden aan om je MySQL-server regelmatig te monitoren en te optimaliseren om maximale prestaties en betrouwbaarheid te garanderen. Bovendien biedt Hostman vooraf geconfigureerde en gebruiksklare cloud-databases aan, waaronder cloud MySQL.
16 July 2025 · 8 min to read

Heb je vragen,
opmerkingen of zorgen?

Onze professionals staan altijd klaar om je te helpen,
of je nu hulp nodig hebt of gewoon niet weet waar te beginnen
E-mail ons
Hostman's Support