Maison base de données tutoriel mysql 6 instructions SELECT simples optimisées pour SQL

6 instructions SELECT simples optimisées pour SQL

Apr 05, 2017 am 11:56 AM

Le réglage des performances des instructions SELECT est parfois une tâche très chronophage et, à mon avis, cela suit le principe de Pareto. 20 % de l'effort vous apportera probablement 80 % d'amélioration des performances, et cela peut vous prendre 80 % du temps pour obtenir les 20 % restants de l'amélioration des performances. À moins que vous ne travailliez sur Vénus, où chaque jour équivaut à 243 jours sur Terre, il y a de fortes chances que les délais de livraison ne vous laissent pas suffisamment de temps pour régler vos requêtes SQL.

Sur la base de mes années d'expérience dans l'écriture et l'exécution d'instructions SQL, j'ai commencé à développer une liste de contrôle à laquelle je me réfère lorsque j'essaie d'améliorer les performances des requêtes. J'y fais référence avant de planifier des requêtes et de lire la documentation de la base de données que j'utilise, qui peut parfois être complexe. Ma liste de contrôle n'est en aucun cas complète ou scientifique, il s'agit plutôt d'un calcul conservateur, mais je peux dire qu'en suivant ces étapes simples, j'obtiens la plupart du temps des améliorations de performances. Liste de contrôle ci-dessous.

Vérifiez Index

Les index doivent être ajoutés à tous les champs utilisés dans les parties WHERE et JOIN de l'instruction SQL. Faites ce test de performances SQL de 3 minutes. Quelle que soit votre note, assurez-vous de lire ces résultats avec des informations.

Limiter le travailTaille de l'ensemble de données

Vérifiez les tables utilisées dans ces instructions SELECT pour voir si vous pouvez appliquer la Clause WHERE pour filtrer. Un exemple typique est une requête qui fonctionne bien lorsqu’il n’y a que quelques milliers de lignes dans la table. Mais à mesure que l’application grandissait, les requêtes ralentissaient. La solution peut être aussi simple que de limiter la requête pour afficher les données du mois en cours.

Lorsque votre instruction de requête a une sous-requête, veillez à utiliser le filtrage sur l'instruction interne de la sous-requête, et non sur l'instruction externe.

Sélectionnez uniquement les champs dont vous avez besoin.

Les champs supplémentaires augmentent généralement la texture des données renvoyées, ce qui entraîne le renvoi d'un plus grand nombre de données au client SQL. Aussi :

• Lors de l'utilisation d'applications dotées de capacités de reporting et d'analyse, les performances de reporting sont parfois faibles car l'outil de reporting doit regrouper les données qu'il reçoit sous forme détaillée.

• Parfois, la requête peut s'exécuter assez rapidement, mais votre problème peut être lié au réseau, car de grandes quantités de données détaillées sont envoyées via le réseau au serveur de reporting.

• Lorsque vous utilisez un SGBD orienté colonnes, seules les colonnes que vous sélectionnez sont lues à partir du disque. Moins vous incluez de colonnes dans votre requête, plus la surcharge d’E/S est faible.

Supprimer les tables inutiles

La raison de la suppression des tables inutiles est la même que celle de la suppression des champs inutiles dans l'instruction de requête.

L'écriture d'instructions SQL est un processus qui nécessite généralement un grand nombre de processus itératifs d'écriture et de test d'instructions SQL. Pendant le développement, vous pouvez ajouter des tables à une requête, ce qui peut n'avoir aucun impact sur les données renvoyées par le code SQL. Une fois que SQL fonctionne correctement, je constate que de nombreuses personnes ne révisent pas leurs scripts et ne suppriment pas les tables qui n'ont aucun impact sur les données finales renvoyées. En supprimant les opérations JOINS avec des tables inutiles, vous réduisez un grand nombre de processus que la base de données doit exécuter. Parfois, comme lors de la suppression de colonnes, vous constaterez que les données que vous avez réduites reviennent via la base de données.

Supprimer la requête de jointure externe

C'est plus facile à dire qu'à faire, cela dépend de l'impact de la modification du contenu de la table. Une solution consiste à supprimer l’opération OUTER JOINS en plaçant des espaces réservés dans les lignes des deux tables. Supposons que vous disposiez des tables suivantes, qui garantissent que toutes les données sont renvoyées en définissant OUTER JOINS :

CUSTOMER_ID CUSTOMER_NAME
1 John Doe
2 Mary Jane
3 Peter Pan
4 Joe Soap
CUSTOMER_ID SALES_PERSON
NULL Newbee Smith
2 Oldie Jones
1 Another Oldie
NULL Greenhorn

La solution consiste à ajouter un espace réservé à la ligne de la table client et à mettre à jour toutes les valeurs NULL de la table des ventes avec l'espace réservé.

CUSTOMER_ID CUSTOMER_NAME
0 NO CUSTOMER
1 John Doe
2 Mary Jane
3 Peter Pan
4 Joe Soap
CUSTOMER_ID SALES_PERSON
0 Newbee Smith
2 Oldie Jones
1 Another Oldie
0 Greenhorn

Non seulement vous supprimez la dépendance à l'opération OUTER JOIN, mais vous normalisez également la façon dont les vendeurs sans clients sont représentés. Les autres développeurs n'ont pas besoin d'écrire des instructions supplémentaires telles que ISNULL(customer_id, « No customer yet »).

Supprimez les champs calculés dans les clauses JOIN et WHERE

C'est une autre astuce qui peut parfois être plus facile à dire qu'à faire, cela dépend de la modification du schéma de la table. les autorisations. Le champ calculé utilisé dans l'instruction de jointure peut être créé dans la table en tant que nouveau champ. Étant donné l'instruction SQL suivante :

FROM sales a 
JOIN budget b ON    ((YEAR(a.sale_date)* 100) + MONTH(a.sale_date)) = b.budget_year_month
Copier après la connexion

L'ajout d'une colonne utilisant l'année et le mois dans la table des ventes peut améliorer les performances. L'instruction SQL mise à jour sera la suivante :

SELECT * FROM PRODUCTSFROM sales a 
JOIN budget b ON    a.sale_year_month = b.budget_year_month
Copier après la connexion

Résumé

Les suggestions ci-dessus peuvent se résumer aux points suivants :

• Vérifiez l'index

• Opérez sur l'ensemble de données minimum requis

• Supprimez les champs et les tables inutiles

• Supprimez les opérations de calcul dans vos clauses JOIN et WHERE

Si toutes ces suggestions ne parviennent pas à améliorer les performances de vos requêtes SQL, la dernière suggestion est de passer à Venus. Tout ce dont vous avez besoin est une journée pour régler vos instructions SQL.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Apr 17, 2024 pm 02:57 PM

HQL et SQL sont comparés dans le framework Hibernate : HQL (1. Syntaxe orientée objet, 2. Requêtes indépendantes de la base de données, 3. Sécurité des types), tandis que SQL exploite directement la base de données (1. Normes indépendantes de la base de données, 2. Exécutable complexe requêtes et manipulation de données).

Utilisation de l'opération de division dans Oracle SQL Utilisation de l'opération de division dans Oracle SQL Mar 10, 2024 pm 03:06 PM

"Utilisation de l'opération de division dans OracleSQL" Dans OracleSQL, l'opération de division est l'une des opérations mathématiques courantes. Lors de l'interrogation et du traitement des données, les opérations de division peuvent nous aider à calculer le rapport entre les champs ou à dériver la relation logique entre des valeurs spécifiques. Cet article présentera l'utilisation de l'opération de division dans OracleSQL et fournira des exemples de code spécifiques. 1. Deux méthodes d'opérations de division dans OracleSQL Dans OracleSQL, les opérations de division peuvent être effectuées de deux manières différentes.

Comparaison et différences de syntaxe SQL entre Oracle et DB2 Comparaison et différences de syntaxe SQL entre Oracle et DB2 Mar 11, 2024 pm 12:09 PM

Oracle et DB2 sont deux systèmes de gestion de bases de données relationnelles couramment utilisés, chacun possédant sa propre syntaxe et ses propres caractéristiques SQL. Cet article comparera et différera la syntaxe SQL d'Oracle et de DB2, et fournira des exemples de code spécifiques. Connexion à la base de données Dans Oracle, utilisez l'instruction suivante pour vous connecter à la base de données : CONNECTusername/password@database Dans DB2, l'instruction pour vous connecter à la base de données est la suivante : CONNECTTOdataba.

Concurrence en technologie de base de données : quelles sont les différences entre Oracle et SQL ? Concurrence en technologie de base de données : quelles sont les différences entre Oracle et SQL ? Mar 09, 2024 am 08:30 AM

Concurrence en technologie de base de données : quelles sont les différences entre Oracle et SQL ? Dans le domaine des bases de données, Oracle et SQL Server sont deux systèmes de gestion de bases de données relationnelles très respectés. Bien qu’elles appartiennent toutes deux à la catégorie des bases de données relationnelles, il existe de nombreuses différences entre elles. Dans cet article, nous examinerons les différences entre Oracle et SQL Server, ainsi que leurs fonctionnalités et avantages dans les applications pratiques. Tout d'abord, il existe des différences de syntaxe entre Oracle et SQL Server.

Optimisation des programmes C++ : techniques de réduction de la complexité temporelle Optimisation des programmes C++ : techniques de réduction de la complexité temporelle Jun 01, 2024 am 11:19 AM

La complexité temporelle mesure le temps d'exécution d'un algorithme par rapport à la taille de l'entrée. Les conseils pour réduire la complexité temporelle des programmes C++ incluent : le choix des conteneurs appropriés (tels que vecteur, liste) pour optimiser le stockage et la gestion des données. Utilisez des algorithmes efficaces tels que le tri rapide pour réduire le temps de calcul. Éliminez les opérations multiples pour réduire le double comptage. Utilisez des branches conditionnelles pour éviter les calculs inutiles. Optimisez la recherche linéaire en utilisant des algorithmes plus rapides tels que la recherche binaire.

Analyse de l'impact du numéro de connexion MySQL sur les performances de la base de données Analyse de l'impact du numéro de connexion MySQL sur les performances de la base de données Mar 16, 2024 am 10:09 AM

Analyse de l'impact du numéro de connexion MySQL sur les performances des bases de données Avec le développement continu des applications Internet, les bases de données sont devenues un outil important de stockage et de gestion des données pour prendre en charge les systèmes d'application. Dans le système de base de données, le nombre de connexions est un concept important, directement lié aux performances et à la stabilité du système de base de données. Cet article partira du point de vue de la base de données MySQL, explorera l'impact du nombre de connexions sur les performances de la base de données et l'analysera à travers des exemples de code spécifiques. 1. Quel est le nombre de connexions ? Le nombre de connexions fait référence au nombre de connexions client prises en charge par le système de base de données en même temps. Il peut également être géré.

Comment optimiser les éléments de démarrage du système WIN7 Comment optimiser les éléments de démarrage du système WIN7 Mar 26, 2024 pm 06:20 PM

1. Appuyez sur la combinaison de touches (touche Win + R) sur le bureau pour ouvrir la fenêtre d'exécution, puis entrez [regedit] et appuyez sur Entrée pour confirmer. 2. Après avoir ouvert l'éditeur de registre, nous cliquons pour développer [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer], puis voyons s'il y a un élément Sérialiser dans le répertoire. Sinon, nous pouvons cliquer avec le bouton droit sur Explorateur, créer un nouvel élément et le nommer Sérialiser. 3. Cliquez ensuite sur Sérialiser, puis cliquez avec le bouton droit sur l'espace vide dans le volet de droite, créez une nouvelle valeur de bit DWORD (32) et nommez-la Étoile.

La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? Mar 24, 2024 am 10:27 AM

La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? À l’ère actuelle de développement technologique rapide, les smartphones sont devenus un élément indispensable de notre vie quotidienne. En tant qu'élément important d'un smartphone, l'optimisation des performances du processeur est directement liée à l'expérience utilisateur du téléphone mobile. En tant que smartphone haut de gamme, la configuration des paramètres du Vivox100 a attiré beaucoup d'attention, en particulier l'optimisation des performances du processeur a attiré beaucoup d'attention de la part des utilisateurs. En tant que « cerveau » du téléphone mobile, le processeur affecte directement la vitesse de fonctionnement du téléphone mobile.

See all articles