MySQL vs MariaDB : guide complet pour votre hebergement 2026
MySQL vs MariaDB : guide complet pour votre hebergement 2026
La base de donnees est le coeur de la plupart des sites web dynamiques : WordPress, PrestaShop, Drupal et pratiquement tous les CMS et applications web reposent sur une base de donnees relationnelle. En 2026, deux systemes dominent l’hebergement web : MySQL et MariaDB. Lequel choisir ? Quelles sont les differences concretes ? Ce guide complet vous donne toutes les cles pour comprendre et optimiser votre base de donnees.
L’histoire : de MySQL a MariaDB
MySQL : le pilier du web
MySQL a ete cree en 1995 par la societe suedoise MySQL AB. Pour une documentation technique complete, consultez le manuel officiel MySQL. Il est rapidement devenu la base de donnees open-source la plus populaire au monde, notamment grace a la stack LAMP (Linux, Apache, MySQL, PHP). En 2008, Sun Microsystems rachete MySQL AB. Puis en 2010, Oracle rachete Sun, devenant ainsi proprietaire de MySQL.
MariaDB : le fork communautaire
Inquiet du rachat par Oracle, Michael “Monty” Widenius, le createur original de MySQL, a cree MariaDB en 2009. MariaDB est un fork de MySQL : il est parti du meme code source mais a evolue de maniere independante. L’objectif : garantir qu’une version veritablement open-source et communautaire existe toujours.
En 2026, MariaDB est utilise par defaut dans la plupart des distributions Linux (Debian, Ubuntu, Red Hat, Arch) et par de nombreux hebergeurs web.
Differences techniques en 2026
Compatibilite
MariaDB a longtemps ete un remplacement direct (drop-in replacement) de MySQL. Cela signifie que vous pouviez remplacer MySQL par MariaDB sans modifier votre application. En 2026, c’est encore largement vrai pour les usages courants, mais les deux projets ont diverge sur certains points avances.
| Aspect | MySQL 9.x (2026) | MariaDB 11.x (2026) |
|---|---|---|
| Protocole | Compatible | Compatible |
| Syntaxe SQL de base | Identique | Identique |
| Drivers/connecteurs | MySQL natif | Compatible MySQL |
| JSON | Type natif optimise | Type alias de LONGTEXT |
| CTE recursives | Oui | Oui |
| Window functions | Oui | Oui |
| Sequences | Non | Oui (CREATE SEQUENCE) |
| Colonnes systeme | Non | Oui (versionning) |
Pour WordPress, Joomla, Drupal ou PrestaShop, les deux sont parfaitement interchangeables. Les differences ne se manifestent que pour des usages avances specifiques.
Moteurs de stockage
C’est un domaine ou MariaDB se distingue nettement.
| Moteur | MySQL | MariaDB | Usage |
|---|---|---|---|
| InnoDB | Oui (defaut) | Oui (defaut) | Usage general, transactions |
| MyISAM | Oui (legacy) | Oui (legacy) | Tables en lecture seule |
| Aria | Non | Oui | Remplacement ameliore de MyISAM |
| ColumnStore | Non | Oui | Analytique, big data |
| Spider | Non | Oui | Sharding natif |
| CONNECT | Non | Oui | Acces a des sources externes |
| MyRocks | Non | Oui | Optimise pour SSD, compression |
| S3 | Non | Oui | Tables archivees sur S3 |
MariaDB offre donc plus de flexibilite pour des cas d’usage specialises. Pour l’hebergement web classique, InnoDB est le moteur standard des deux cotes.
Performances
Les benchmarks en 2026 montrent des resultats tres proches pour les charges de travail typiques d’un site web :
| Test | MySQL 9.x | MariaDB 11.x |
|---|---|---|
| SELECT simples | ~15 000 req/s | ~15 200 req/s |
| INSERT en lot | ~8 000 req/s | ~8 500 req/s |
| Requetes complexes (JOIN) | ~4 200 req/s | ~4 400 req/s |
| JSON natif | Avantage MySQL | Correct |
| Requetes paralleles | Oui | Oui (depuis 11.x) |
Benchmarks indicatifs sur un serveur 4 vCPU / 8 Go RAM, base de 1 million de lignes.
MariaDB a un leger avantage sur les operations de lecture et d’ecriture classiques grace a son optimiseur de requetes plus agressif. MySQL a un avantage sur les operations JSON natives grace a son type JSON binaire optimise.
Licence et gouvernance
| Aspect | MySQL | MariaDB |
|---|---|---|
| Licence | GPL v2 (Community) + proprietaire (Enterprise) | GPL v2 (100% open-source) |
| Gouvernance | Oracle | MariaDB Foundation + MariaDB plc |
| Edition Enterprise | Payante, fonctions exclusives | Tout est open-source |
| Mises a jour securite | Oracle controle le calendrier | Communaute reactive |
Quel SGBD utilisent les hebergeurs suisses et francophones ?
| Hebergeur | SGBD par defaut | Alternative disponible |
|---|---|---|
| Infomaniak | MariaDB | Non |
| o2switch | MariaDB | Non |
| Hetzner | Au choix (VPS) | MySQL ou MariaDB |
| OVHcloud | MariaDB | MySQL sur certaines offres |
| Hostinger | MariaDB | Non |
| PlanetHoster | MariaDB | Non |
La tendance est claire : MariaDB domine l’hebergement web francophone en 2026.
Commandes essentielles
Que vous utilisiez MySQL ou MariaDB, les commandes de base sont identiques. Voici les operations les plus courantes, utiles notamment pour gerer votre hebergement via cPanel ou en SSH.
Connexion et navigation
-- Se connecter (en SSH ou terminal)
mysql -u nom_utilisateur -p
-- Lister les bases de donnees
SHOW DATABASES;
-- Selectionner une base de donnees
USE nom_de_la_base;
-- Lister les tables
SHOW TABLES;
-- Voir la structure d'une table
DESCRIBE nom_table;
-- Voir la version du serveur
SELECT VERSION();
Operations CRUD de base
-- Creer une base de donnees
CREATE DATABASE mon_site
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- Creer un utilisateur avec mot de passe
CREATE USER 'mon_user'@'localhost' IDENTIFIED BY 'mot_de_passe_fort';
-- Accorder les permissions
GRANT ALL PRIVILEGES ON mon_site.* TO 'mon_user'@'localhost';
FLUSH PRIVILEGES;
-- Creer une table
CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(255) NOT NULL,
contenu TEXT,
date_creation DATETIME DEFAULT CURRENT_TIMESTAMP,
publie BOOLEAN DEFAULT FALSE,
INDEX idx_date (date_creation)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Inserer des donnees
INSERT INTO articles (titre, contenu, publie)
VALUES ('Mon premier article', 'Le contenu de l article...', TRUE);
-- Lire des donnees
SELECT titre, date_creation FROM articles
WHERE publie = TRUE
ORDER BY date_creation DESC
LIMIT 10;
-- Modifier des donnees
UPDATE articles SET titre = 'Titre modifie' WHERE id = 1;
-- Supprimer des donnees
DELETE FROM articles WHERE id = 1;
Sauvegarde et restauration
# Sauvegarder une base de donnees
mysqldump -u utilisateur -p nom_base > sauvegarde.sql
# Sauvegarder toutes les bases
mysqldump -u root -p --all-databases > sauvegarde_complete.sql
# Sauvegarder avec compression
mysqldump -u utilisateur -p nom_base | gzip > sauvegarde.sql.gz
# Restaurer une base
mysql -u utilisateur -p nom_base < sauvegarde.sql
# Restaurer depuis un fichier compresse
gunzip < sauvegarde.sql.gz | mysql -u utilisateur -p nom_base
Optimisation de la base de donnees
Une base de donnees mal optimisee est souvent la cause principale de lenteurs sur un site web. Voici les optimisations essentielles.
1. Configuration du serveur (my.cnf)
Pour un site web classique sur un serveur avec 4 Go de RAM :
[mysqld]
# Memoire InnoDB : 50-70% de la RAM disponible
innodb_buffer_pool_size = 2G
# Taille du log InnoDB
innodb_log_file_size = 512M
# Cache de requetes (desactive depuis MySQL 8.0, encore utile sur MariaDB)
# query_cache_type = 1 # MariaDB uniquement
# query_cache_size = 128M # MariaDB uniquement
# Connexions
max_connections = 150
wait_timeout = 300
# Tables temporaires
tmp_table_size = 64M
max_heap_table_size = 64M
# Fichier par table (recommande)
innodb_file_per_table = 1
# Journalisation
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
2. Indexation
Les index sont le levier de performance le plus puissant. Un index bien place peut transformer une requete de 5 secondes en une requete de 5 millisecondes.
-- Identifier les requetes lentes
SHOW FULL PROCESSLIST;
-- Analyser une requete
EXPLAIN SELECT * FROM wp_posts
WHERE post_status = 'publish'
ORDER BY post_date DESC;
-- Ajouter un index compose
CREATE INDEX idx_status_date ON wp_posts (post_status, post_date);
-- Verifier les index existants
SHOW INDEX FROM wp_posts;
Regles d’or pour les index :
- Indexez les colonnes utilisees dans les clauses
WHERE,JOIN,ORDER BY - Les index composes doivent respecter l’ordre de selectivite (colonne la plus selective en premier)
- N’indexez pas tout : chaque index ralentit les ecritures (INSERT, UPDATE, DELETE)
- Surveillez les index inutilises avec
SHOW INDEXet les statistiques
3. Optimisation specifique a WordPress
WordPress est le principal consommateur de bases de donnees sur le web. Voici les optimisations specifiques apres avoir installe WordPress :
-- Supprimer les revisions inutiles (garder les 5 dernieres par article)
DELETE FROM wp_postmeta WHERE post_id IN (
SELECT ID FROM wp_posts WHERE post_type = 'revision'
AND ID NOT IN (
SELECT ID FROM (
SELECT ID FROM wp_posts WHERE post_type = 'revision'
ORDER BY post_date DESC LIMIT 5
) AS recent_revisions
)
);
-- Nettoyer les transients expires
DELETE FROM wp_options WHERE option_name LIKE '%_transient_%'
AND option_value < UNIX_TIMESTAMP();
-- Optimiser les tables
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments;
-- Verifier la taille des tables
SELECT table_name,
ROUND(data_length / 1024 / 1024, 2) AS data_mb,
ROUND(index_length / 1024 / 1024, 2) AS index_mb,
table_rows
FROM information_schema.tables
WHERE table_schema = 'wordpress'
ORDER BY data_length DESC;
Pour limiter les revisions dans wp-config.php :
// Limiter a 5 revisions par article
define('WP_POST_REVISIONS', 5);
// Augmenter l'intervalle d'auto-sauvegarde (en secondes)
define('AUTOSAVE_INTERVAL', 120);
4. Surveillance et diagnostic
-- Voir les variables de performance
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';
SHOW GLOBAL STATUS LIKE 'Threads%';
SHOW GLOBAL STATUS LIKE 'Slow_queries';
-- Taux de hit du buffer pool (devrait etre > 99%)
SELECT
ROUND(
(1 - (
(SELECT VARIABLE_VALUE FROM information_schema.GLOBAL_STATUS
WHERE VARIABLE_NAME = 'Innodb_buffer_pool_reads') /
(SELECT VARIABLE_VALUE FROM information_schema.GLOBAL_STATUS
WHERE VARIABLE_NAME = 'Innodb_buffer_pool_read_requests')
)) * 100, 2
) AS buffer_pool_hit_rate;
Migration de MySQL vers MariaDB (et inversement)
De MySQL vers MariaDB
La migration est generalement transparente pour les sites web :
# 1. Sauvegarder la base
mysqldump -u root -p --all-databases > backup_mysql.sql
# 2. Arreter MySQL
sudo systemctl stop mysql
# 3. Desinstaller MySQL et installer MariaDB (Ubuntu/Debian)
sudo apt remove mysql-server
sudo apt install mariadb-server
# 4. Restaurer les bases
mysql -u root -p < backup_mysql.sql
# 5. Verifier
mysql -u root -p -e "SELECT VERSION();"
De MariaDB vers MySQL
Le sens inverse est plus delicat si vous utilisez des fonctionnalites specifiques a MariaDB (sequences, moteur Aria, etc.). Pour un site WordPress standard, la migration reste simple avec la meme methode de dump/restore.
Quel choisir pour votre projet ?
Choisissez MariaDB si :
- Vous utilisez un hebergement mutualise (c’est probablement deja MariaDB)
- Vous voulez une solution 100% open-source
- Vous avez besoin de moteurs de stockage avances (ColumnStore, Aria)
- Vous hebergez un site WordPress, Joomla, PrestaShop classique
Choisissez MySQL si :
- Vous avez besoin de fonctionnalites JSON avancees
- Votre application est specifiquement certifiee pour MySQL
- Vous utilisez des services cloud manages (AWS RDS, Google Cloud SQL)
- Vous avez besoin du support commercial d’Oracle
Pour la majorite des sites web
Les deux conviennent parfaitement. Si votre hebergeur propose MariaDB par defaut (ce qui est le cas chez Infomaniak, o2switch, Hostinger et PlanetHoster), restez sur MariaDB. Si vous configurez votre propre VPS, MariaDB est le choix recommande pour l’hebergement web en 2026.
FAQ
WordPress fonctionne-t-il avec MariaDB ?
Oui, parfaitement. WordPress supporte officiellement MySQL 5.7+ et MariaDB 10.4+. La grande majorite des hebergeurs WordPress utilisent MariaDB en 2026, y compris Infomaniak.
MariaDB est-il plus rapide que MySQL ?
Pour les charges de travail web classiques, les performances sont comparables. MariaDB a un leger avantage sur les lectures grace a son optimiseur plus agressif. MySQL est legerement meilleur sur les operations JSON natives. En pratique, la difference est negligeable pour un site web standard.
Puis-je utiliser phpMyAdmin avec MariaDB ?
Oui. phpMyAdmin fonctionne de maniere identique avec MySQL et MariaDB. C’est l’interface d’administration par defaut proposee dans cPanel et la plupart des panneaux d’hebergement.
Comment savoir si j’utilise MySQL ou MariaDB ?
Connectez-vous a phpMyAdmin ou en ligne de commande et executez SELECT VERSION();. Si le resultat contient “MariaDB” (par exemple 11.4.2-MariaDB), vous utilisez MariaDB. Sinon, c’est MySQL (par exemple 9.0.1).
Combien de bases de donnees puis-je avoir ?
Cela depend de votre hebergeur. Sur un hebergement mutualise, c’est generalement illimite chez o2switch et limite a quelques dizaines chez d’autres. Sur un VPS, la limite est celle de votre espace disque.
Faut-il optimiser regulierement sa base de donnees ?
Oui. Lancez un OPTIMIZE TABLE sur vos tables principales au moins une fois par mois, surtout pour WordPress. Nettoyez regulierement les revisions, les transients et les commentaires spam. Un plugin comme WP-Optimize peut automatiser ce processus.
Conclusion
MySQL et MariaDB sont deux excellents systemes de gestion de bases de donnees pour l’hebergement web. En 2026, MariaDB a pris le dessus dans l’ecosysteme de l’hebergement web francophone grace a sa philosophie open-source et ses fonctionnalites avancees. Pour la majorite des utilisateurs, le choix entre les deux a peu d’impact concret : concentrez-vous plutot sur l’optimisation de votre configuration et de vos requetes.
Les bases de donnees meritent une attention particuliere car elles sont souvent le goulot d’etranglement des performances. Un innodb_buffer_pool_size bien dimensionne et quelques index strategiques peuvent transformer radicalement la vitesse de votre site.