Compétences MySQL pour opérations sur bases de données
Utilisez cette compétence pour le travail spécifique à MySQL : schéma, requêtes, indexation, transactions et opérations. Déterminez la version réelle du serveur, le mode SQL, le moteur de stockage, le jeu de caractères/collationnement, la topologie et l'environnement avant de vous fier à un comportement dépendant de la version.
Découvrir avant d'interroger
Privilégiez les migrations du dépôt, les définitions de schéma, les mappages ORM et les requêtes de métadonnées en lecture seule. Confirmez le grain des tables, les clés primaires et uniques, les clés étrangères, la nullabilité, les colonnes générées, les partitions, les index, le volume de données et les relations. N'inférez pas les noms de colonnes physiques à partir des champs d'application.
Protégez les identifiants et les données des lignes. N'imprimez jamais de chaînes de connexion, secrets, enregistrements complets de clients ou données personnelles inutiles. Utilisez le compte le moins privilégié et un environnement non productif ou une réplique en lecture lorsque cela répond à la tâche.
Écrire des requêtes correctes et limitées
- Sélectionnez des colonnes nommées plutôt que
SELECT *lorsque le contrat est connu. - Utilisez des paramètres typés pour les valeurs ; ne concaténez jamais d'entrée non fiable dans des identifiants ou expressions SQL.
- Rendez explicite la cardinalité des jointures et vérifiez la multiplication avant d'agréger.
- Gérez délibérément
NULL, les fuseaux horaires, les collationnements, la précision et les bornes temporelles inclusives/exclusives. - Ajoutez un ordonnancement déterministe pour la pagination ou les extractions répétables. Privilégiez la pagination par clé pour les grands ensembles mutables lorsque cela est applicable.
- Limitez les lectures exploratoires avec des prédicats sélectifs et une limite, mais n'ajoutez pas de limite qui modifie silencieusement une exigence d'agrégat ou de complétude.
Validez les résultats avec des comptages, des dénominateurs, des cas limites et un calcul indépendant lorsque la décision est matérielle.
Analyser les performances en toute sécurité
Utilisez la commande de plan la moins invasive disponible. Privilégiez EXPLAIN ou les formats documentés non exécutants ; utilisez EXPLAIN ANALYZE uniquement lorsque l'exécution de l'instruction et sa charge de travail sont autorisées et limitées. Inspectez les lignes estimées par rapport aux lignes réelles, le type d'accès, les clés choisies et possibles, l'ordre des jointures, les tables temporaires, le tri, le comportement de couverture et la sélectivité des prédicats.
Un index est un compromis. Évaluez l'ordre des colonnes, les prédicats d'égalité/plage, l'ordonnancement, les besoins de couverture, la longueur du préfixe, l'amplification d'écriture, le stockage, le comportement de verrou/construction, les index redondants et la fréquence réelle de la charge de travail. N'affirmez pas que chaque colonne de filtre ou de jointure a besoin de son propre index.
Contrôler les mutations et les transactions
Avant INSERT, UPDATE, DELETE, DDL, verrou, maintenance, réplication ou modifications de configuration, confirmez l'environnement cible, l'estimation des lignes affectées, l'autorisation, le comportement de transaction/verrou, le chemin de sauvegarde ou de restauration, et les conditions d'arrêt observables. Prévisualisez la cible exacte avec une requête en lecture seule si possible.
Utilisez les transactions conformément au moteur et à l'opération réels ; ne supposez pas que tous les DDL ou effets externes sont annulables. Gardez les transactions courtes, utilisez des prédicats stables, vérifiez le comportement de blocage/reprise et confirmez les lignes affectées avant de valider. Pour les migrations de schéma/données, utilisez une approche de compatibilité progressive plutôt que des modifications destructives in situ.
N'exécutez jamais de mutations en production, ne créez/supprimez pas d'index, ne modifiez pas les utilisateurs ou privilèges, n'altérez pas la réplication, ne tuez pas de sessions et ne modifiez pas la configuration du serveur sans autorisation explicite pour cette opération et cet environnement.
Transmission
Renvoyez le plan SQL ou de modification, les hypothèses, les preuves de schéma/version, les paramètres, la cardinalité attendue, les conclusions du plan, la limite de sécurité et les étapes de vérification. Si l'exécution a été autorisée, incluez l'environnement, l'horodatage, les lignes affectées, le résultat de la transaction, les preuves avant/après, le risque résiduel et l'état de récupération. Une commande réussie ne suffit pas ; vérifiez les données demandées ou le résultat opérationnel.