MySQL, restore et performance!

Une analyse sérieuse des façons d’optimiser la vitesse d’un RESTORE en MySQL.

Les requêtes paginées

C’est une question qui revient ad nauseam sur IRC et dans les forums de discussions : comment paginer les résultats d’une requête de manière efficace?

Pour m’éviter de répéter sans cesse les mêmes explications, j’ai finalement trouvé un texte clair qui explique comment effectuer des requêtes paginées de façon performante et intelligente.

Bien que l’article traite de MySQL, les mêmes principes de base s’appliquent aux autres SGBD.

Group by de 4 manières

Différentes subtilités du GROUP BY en MySQL expliquées pour chacune des 4 versions.  Variations sur un même thème expliquées ici!

Configurer ProxySQL 1.4 pour MySQL 5.7 Group Replication

Toute architecture de base de données se doit de se reposer sur 3 piliers, la supervision (monitoring) , la sauvegarde/restauration et la haute disponibilité. Mon premier article de l'année 2018  concerne l'un des meilleurs combos du moment, en matière de haute disponibilité niveau base de données : - MySQL 5.7 Group Replication : la seule solution native HA de MySQL, qui permet notamment de faire du vrai multi-master (avec MySQL NDB Cluster mais ceci est hors sujet). - ProxySQL 1.4 : modestement le meilleur proxy pour MySQL.

MySQL 8.0 et l’optimiseur de requêtes

C’était attendu depuis longtemps : MySQL 8.0 aura un optimiseur de requête amélioré et encore plus intelligent!  Les détails ici.

MySQL : DATETIME vs TIMESTAMP

Un bref résumé des similarités et des différences des types TIMESTAMP et DATETIME sur MySQL.  Un court mais fort instructif article sur le sujet.

Une catastrophe planifiée

Testez-vous vos applications?  Vraiment?  Comme plusieurs, vous ne testez que pour voir si ça fonctionne bien, n’est-ce pas?  Mais comment votre application gère-t-elle les erreurs?

Comment votre application réagirait si votre serveur MySQL explosait en plein milieu d’une transaction?  Votre application pourrait-elle récupérer gracieusement de cette catastrophe sans encore plus aggraver le problème?

Vous me direz que créer de telles conditions de test n’est pas facile.  Alors, voici un excellent article sur quelques façons de faire crasher votre serveur MySQL!

MySQL Sandbox

Si vous développez sérieusement des applications/services qui ont à accéder à différentes version de MySQL, il existe un outil merveilleux pour ce faire: MySQL Sandbox.

Cet outil vous permet d’installer plusieurs versions de MySQL sur une même machine (sur Linux seulement) et ce, sans aucun conflit!

Les nuances de UPSERT

Pour une explication détaillée des variations dans le comportement des UPSERT dans MySQL, PostgreSQL, SQL Server et Oracle, il y a cet excellent article!

Le blogue de Jean-François Gagné

Si vous utilisez MySQL de façon intensive, le blogue de Jean-François Gagné est un incontournable!