*Pourquoi `SELECT ` est une mauvaise pratique en SQL**
Le conseil courant « ne pas optimiser prématurément » ne s'applique pas à SELECT *
. L'utilisation de SELECT *
réduit la clarté du code et rend le profilage des performances beaucoup plus difficile. C'est un anti-modèle qui masque les goulots d'étranglement des performances.
Meilleures alternatives : sélection de colonnes spécifiques
La liste explicite des colonnes offre plusieurs avantages :
-
Gestion robuste des erreurs : Si les colonnes de la table changent, les requêtes avec les colonnes spécifiées échoueront correctement, mettant en évidence le problème.
SELECT *
cache silencieusement ces erreurs.
-
Lisibilité améliorée du code : Indiquer clairement les colonnes requises rend l'objectif du code immédiatement apparent.
-
Transfert de données réduit : La récupération uniquement des colonnes nécessaires minimise le trafic réseau et la charge de la base de données.
-
Évitez les problèmes d'accès ordinal : L'utilisation de l'accès aux colonnes ordinales (par exemple,
SELECT column_1, column_2
) est risquée avec SELECT *
car l'ordre des colonnes peut changer de manière inattendue.
-
Gestion efficace des jointures : Dans les jointures,
SELECT *
récupère toutes les colonnes de toutes les tables, ce qui entraîne une récupération de données inutile.
*Impacts négatifs de `SELECT `**
L'utilisation de SELECT *
conduit à :
-
Logique d'application cachée : Les besoins en données de l'application sont obscurcis, ce qui rend la maintenance et la compréhension difficiles.
-
Gloutons d'étranglement des performances : L'analyse des performances est entravée, ce qui rend l'optimisation de la base de données difficile.
-
Code fragile : Les modifications de schéma peuvent interrompre
SELECT *
les requêtes, augmentant ainsi les coûts de maintenance.
-
Consommation excessive de ressources : Les transferts de données inutiles alourdissent le réseau et le stockage.
-
Optimisation sous-optimale de la base de données : Le moteur de base de données ne peut pas optimiser les requêtes en récupérant efficacement toutes les colonnes.
En résumé :
Bien que SELECT *
semble pratique, il vaut mieux l'éviter. La sélection explicite des colonnes améliore la clarté du code, la gestion des erreurs, les performances et simplifie la gestion de la base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn