Maison base de données tutoriel mysql Analyse des instructions MINUS, INTERSECT et UNION ALL des instructions SQL

Analyse des instructions MINUS, INTERSECT et UNION ALL des instructions SQL

Oct 17, 2017 am 10:10 AM
union

Trois mots-clés dans l'instruction SQL : MINUS (soustraction), INTERSECT (intersection) et UNION ALL (union);

Tout le monde aurait dû apprendre la notion d'ensembles au collège, je n'entrerai donc pas dans les détails. Ces trois mots-clés sont principalement utilisés pour opérer sur les résultats des requêtes de la base de données, tout comme leur signification chinoise : deux requêtes, <.>MOINS consiste à soustraire le deuxième résultat de la requête du premier résultat de la requête. S'il y a une intersection, soustrayez la partie de l'intersection ; sinon, il n'y a aucune différence par rapport au premier résultat de la requête. deux L'intersection des résultats de la requête, UNION ALL est l'union de deux requêtes

Bien que la même fonction ; Il peut être implémenté avec de simples instructions SQL, mais la différence de performances est très grande. Quelqu'un a fait des expériences : made_order a un total de 230 000 enregistrements, charge_detail a un total de 170 000 enregistrements :

La différence de performances. est 15,956 fois ! Par conséquent, lorsqu'on rencontre ce genre de problème, il est préférable d'utiliser MINUS, INTERSECT et UNION ALL pour résoudre le problème, sinon, face à des millions de requêtes de données qui peuvent être vues partout dans le monde. affaire, le serveur de base de données ne sera pas battu à mort par nous ?

    SELECT order_id FROM made_order
  MINUS
  SELECT order_id FROM charge_detail
耗时:1.14 sec
  
  SELECT a.order_id FROM made_order a
   WHERE a.order_id NOT exists (
     SELECT order_id
     FROM charge_detail
     WHERE order_id = a.order_id
   )
耗时:18.19 sec
Copier après la connexion

PS : Lors de l'application de la soustraction, de l'intersection et de l'addition de deux ensembles, il y a des exigences strictes : 1. Les champs des deux ensembles doit être clair (l'utilisation de * ne fonctionnera pas, une erreur sera signalée) ; 2. Type de champ Identique à la commande (les noms peuvent être différents), par exemple : le champ 1 de l'ensemble 1 est NUMBER, le champ 2 est VARCHAR, alors le champ 1 de l'ensemble 2 doit également être NUMBER et le champ 2 doit être VARCHAR 3. Ne peut pas être trié, si vous souhaitez trier les résultats, vous pouvez ajouter une autre requête à l'extérieur après l'opération d'ensemble, puis trier Par exemple. l'exemple précédent peut être remplacé par :

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

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

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)

Comment utiliser l'union en langage C Comment utiliser l'union en langage C Sep 27, 2023 am 11:00 AM

Comment utiliser l'union en langage C

Comment utiliser l'union MySQL pour implémenter une requête de jointure externe complète Comment utiliser l'union MySQL pour implémenter une requête de jointure externe complète May 30, 2023 pm 06:49 PM

Comment utiliser l'union MySQL pour implémenter une requête de jointure externe complète

Comment Java définit-il la classe Union pour réaliser la coexistence des corps de données ? Comment Java définit-il la classe Union pour réaliser la coexistence des corps de données ? May 14, 2023 pm 03:34 PM

Comment Java définit-il la classe Union pour réaliser la coexistence des corps de données ?

Comment optimiser UNION via MySQL pour améliorer les performances Comment optimiser UNION via MySQL pour améliorer les performances May 11, 2023 pm 05:40 PM

Comment optimiser UNION via MySQL pour améliorer les performances

Comment utiliser la fonction FULL OUTER JOIN dans MySQL pour obtenir l'union de deux tables Comment utiliser la fonction FULL OUTER JOIN dans MySQL pour obtenir l'union de deux tables Jul 26, 2023 pm 05:45 PM

Comment utiliser la fonction FULL OUTER JOIN dans MySQL pour obtenir l'union de deux tables

Comment utiliser Union pour optimiser l'instruction Like dans MySQL Comment utiliser Union pour optimiser l'instruction Like dans MySQL May 31, 2023 pm 03:55 PM

Comment utiliser Union pour optimiser l'instruction Like dans MySQL

Quels sont les points à noter lors de l'utilisation de union dans MySQL ? Quels sont les points à noter lors de l'utilisation de union dans MySQL ? Jun 03, 2023 pm 08:04 PM

Quels sont les points à noter lors de l'utilisation de union dans MySQL ?

Quelle est la différence entre union et unionall dans MySQL Quelle est la différence entre union et unionall dans MySQL May 30, 2023 am 08:04 AM

Quelle est la différence entre union et unionall dans MySQL

See all articles