Maison base de données tutoriel mysql Quelques malentendus courants à propos de Mysq

Quelques malentendus courants à propos de Mysq

Jun 20, 2017 pm 03:37 PM
基础

Malentendus courants

    1. count(1) et count(primary_key) valent mieux que count(*)

    Afin de compter le nombre d'enregistrements, de nombreuses personnes utilisent count(1) et count(primary_key) au lieu de count(*). En fait, c'est un malentendu. Pour certains scénarios, cela peut entraîner une dégradation des performances, car la base de données a effectué des optimisations spéciales pour l'opération de comptage count(*).
      1. count(column) et count(*) sont les mêmes

      Ce malentendu même parmi de nombreux ingénieurs seniors Ou c'est courant parmi les administrateurs de base de données, et beaucoup de gens le tiennent pour acquis. En fait, count(column) et count(*) sont des opérations complètement différentes et ont des significations complètement différentes.
      count(column) signifie combien d'enregistrements dans l'ensemble de résultats dont le champ de colonne n'est pas vide
      count(*) signifie combien d'enregistrements il y a dans l'ensemble de résultats
        1. Sélectionner a, b dans… permet à la base de données d'accéder à moins de données que sélectionner a, b, c dans…

        Ce malentendu est Il existe principalement parmi un grand nombre de développeurs. La raison principale est qu'ils ne connaissent pas grand-chose aux principes de stockage de la base de données.
        En fait, la plupart des bases de données relationnelles sont stockées en lignes, et les opérations d'accès aux données sont basées sur une unité d'E/S de taille fixe (appelée bloc ou page généralement 4 Ko, 8 Ko... La plupart du temps, multiple). les lignes sont stockées dans chaque unité IO, et chaque ligne stocke tous les champs de la ligne (à l'exception des types spéciaux de champs tels que lob).
        Ainsi, que nous prenions un ou plusieurs champs, la quantité de données à laquelle la base de données doit accéder dans la table est en fait la même.
        Bien sûr, il y a des exceptions, c'est-à-dire que notre requête peut être complétée dans l'index, c'est-à-dire que lorsque seulement deux champs a et b sont récupérés, il n'est pas nécessaire de renvoyer la table, et le champ c n'est pas dans l'index utilisé, il faut revenir à la table pour obtenir ses données. Dans ce cas, le volume IO entre les deux sera assez différent.
          1. trier par doit nécessiter une opération de tri

          On sait que les données de l'index sont effectivement ordonnées, si notre If les données requises sont dans le même ordre qu'un index et notre requête est exécutée via cet index, la base de données omettra généralement l'opération de tri et renverra les données directement, car la base de données sait que les données répondent déjà à nos besoins de tri.
          En fait, utiliser des index pour optimiser SQL avec des exigences de tri est une méthode d'optimisation très importante
          Lecture approfondie : Analyse de l'implémentation de MySQL ORDER BY, le principe de base de l'implémentation de GROUP BY dans MySQL et Le principe de base de mise en œuvre de MySQL DISTINCT a une analyse plus approfondie dans ces trois articles, en particulier le premier
            1. S'il y a un tri de fichiers dans le plan d'exécution , le disque sera traité Tri des fichiers

            Ce malentendu n'est pas de notre faute, mais est dû à la formulation utilisée par les développeurs MySQL. filesort est l'information que nous pouvons voir affichée dans la colonne « Extra » lorsque nous utilisons la commande expliquer pour afficher le plan d'exécution d'une instruction SQL.
            En fait, chaque fois qu'une instruction SQL nécessite une opération de tri, "Using filesort" s'affichera, ce qui ne signifie pas qu'il y aura une opération de tri de fichiers.
            Lecture approfondie : Comprendre le tri de fichiers dans la sortie de la commande MySQL Explain, j'ai une introduction plus détaillée ici
            • Principes de base

              1. Aussi peu de jointures que possible

              L'avantage de MySQL est la simplicité, mais c'est en fait son inconvénient à certains égards. L'optimiseur MySQL est très efficace, mais en raison de sa quantité limitée d'informations statistiques, la possibilité d'écarts dans le processus de travail de l'optimiseur est plus grande. Pour Join multi-tables complexes, d'une part, en raison de son optimiseur limité, et d'autre part, des efforts insuffisants ont été déployés dans Join, de sorte que les performances sont encore loin derrière celles de leurs prédécesseurs de bases de données relationnelles telles qu'Oracle. Mais s’il s’agit d’une simple requête portant sur une seule table, cet écart sera très faible et même meilleur que celui de ces prédécesseurs de bases de données dans certains scénarios.
                1. Triez le moins possible

                Les opérations de tri consomment plus de ressources CPU, donc réduire le tri peut réduire les accès au cache Dans Dans des scénarios avec des capacités d'E/S suffisantes telles qu'un débit élevé, cela affectera grandement le temps de réponse de SQL.
                Pour MySQL, il existe de nombreuses façons de réduire le tri, telles que :
                • Optimiser en utilisant l'index pour trier comme mentionné dans le malentendu ci-dessus

                • Réduire le nombre d'enregistrements participant au tri

                • Ne triez pas les données sauf si nécessaire

                • Évitez les opérations consommatrices de ressources. Les instructions SQL avec DISTINCT, UNION, MINUS, INTERSECT, ORDER BY démarreront l'exécution du moteur SQL, une ressource- la fonction de tri de consommation (SORT). DISTINCT nécessite une opération de tri, tandis que d'autres nécessitent au moins deux tris

                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)
                1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
                R.E.P.O. Meilleurs paramètres graphiques
                1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
                R.E.P.O. Comment réparer l'audio si vous n'entendez personne
                1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
                R.E.P.O. Commandes de chat et comment les utiliser
                1 Il y a quelques mois 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)

                Tutoriel de base de PHP : du débutant au maître Tutoriel de base de PHP : du débutant au maître Jun 18, 2023 am 09:43 AM

                PHP est un langage de script open source côté serveur largement utilisé qui peut gérer toutes les tâches de développement Web. PHP est largement utilisé dans le développement Web, notamment pour ses excellentes performances en matière de traitement dynamique des données, il est donc apprécié et utilisé par de nombreux développeurs. Dans cet article, nous expliquerons les bases de PHP étape par étape pour aider les débutants à devenir compétents. 1. Syntaxe de base PHP est un langage interprété dont le code est similaire au HTML, CSS et JavaScript. Chaque instruction PHP se termine par un point-virgule ;

                Puis-je apprendre Linux à partir de zéro ? Que dois-je apprendre ? Puis-je apprendre Linux à partir de zéro ? Que dois-je apprendre ? Feb 19, 2024 pm 12:57 PM

                Si vous souhaitez travailler dans l'industrie informatique, mais souhaitez apprendre la programmation, quelle technologie devriez-vous choisir ? Bien sûr, il s'agit de l'exploitation et de la maintenance de Linux ? Linux est une technologie très populaire sur le marché, avec une large gamme d'applications et de bonnes perspectives d'emploi, et appréciée par de nombreuses personnes. La question est donc : puis-je apprendre le fonctionnement et la maintenance de Linux sans aucune base ? Sur le marché des serveurs, le système Linux détient une part de marché allant jusqu'à 80 % en raison de ses avantages tels que la stabilité, la sécurité, l'open source gratuit, l'efficacité et la commodité. De là, on peut voir que les applications Linux sont très populaires. Que ce soit maintenant ou dans le futur, apprendre Linux est un très bon choix. Quant à savoir s’il est possible d’apprendre à partir de zéro ? Ma réponse est bien sûr. Le cours en présentiel Oldboy Education Linux est spécialement conçu pour les personnes n'ayant aucune connaissance de base.

                Mar 22, 2024 pm 09:39 PM

                Le langage Go est un langage compilé à typage statique développé par Google. Ses fonctionnalités concises et efficaces ont attiré l'attention et l'amour des développeurs. Dans le processus d’apprentissage du langage Go, la maîtrise des connaissances de base sur les variables est une étape cruciale. Cet article expliquera les connaissances de base telles que la définition, l'affectation et l'inférence de type de variables dans le langage Go à travers des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et maîtriser ces points de connaissances. Dans le langage Go, vous pouvez utiliser le mot-clé var pour définir une variable, qui est le format du type de variable var nom de variable.

                Introduction aux bases de PHP : Comment utiliser la fonction echo pour afficher du contenu textuel Introduction aux bases de PHP : Comment utiliser la fonction echo pour afficher du contenu textuel Jul 30, 2023 pm 05:38 PM

                Introduction de base à PHP : Comment utiliser la fonction echo pour générer du contenu textuel. Dans la programmation PHP, vous devez souvent afficher du contenu textuel sur une page Web. Dans ce cas, vous pouvez utiliser la fonction echo. Cet article explique comment utiliser la fonction echo pour générer du contenu textuel et fournit un exemple de code. Avant de commencer, assurez-vous d'abord d'avoir installé PHP et configuré l'environnement d'exécution. Si PHP n'est pas encore installé, vous pouvez télécharger la dernière version stable sur le site officiel de PHP (https://www.php.net).

                Explication détaillée des fonctions du langage C : analyse basique à avancée et complète de l'utilisation des fonctions Explication détaillée des fonctions du langage C : analyse basique à avancée et complète de l'utilisation des fonctions Feb 18, 2024 pm 02:25 PM

                Encyclopédie des fonctions du langage C : de base à avancée, explication détaillée de la façon d'utiliser les fonctions, des exemples de code spécifiques sont nécessaires Introduction : Le langage C est un langage de programmation largement utilisé, et ses fonctions puissantes et sa flexibilité en font le premier choix de nombreux développeurs. En langage C, la fonction est un concept important. Elle peut combiner un morceau de code en un module indépendant, améliorant ainsi la réutilisabilité et la maintenabilité du code. Cet article présentera l'utilisation des fonctions du langage C à partir des bases et progressera progressivement pour aider les lecteurs à maîtriser les compétences d'écriture de fonctions. 1. Définition et appel de fonctions en C

                Notes d'étude PHP : bases de la programmation orientée objet Notes d'étude PHP : bases de la programmation orientée objet Oct 09, 2023 pm 12:46 PM

                Notes d'étude PHP : bases de la programmation orientée objet, des exemples de code spécifiques sont requis Introduction : la programmation orientée objet (POO en abrégé) est une façon de penser par programmation qui décompose le problème en plusieurs objets et définit l'interaction entre les objets pour résoudre des problèmes complexes. problèmes de programmation. En tant que langage de programmation puissant, PHP prend également en charge la programmation orientée objet. Cet article présentera les concepts de base et la syntaxe courante de la programmation orientée objet en PHP, et fournira des exemples de code spécifiques. gentil

                Ne manquez pas votre chance d'obtenir dès maintenant votre certification Basic C# gratuite auprès de Microsoft Ne manquez pas votre chance d'obtenir dès maintenant votre certification Basic C# gratuite auprès de Microsoft Sep 01, 2023 pm 12:45 PM

                Appel à tous les développeurs C# ! Microsoft et l'organisation à but non lucratif freeCodeCamp annoncent le lancement d'une nouvelle certification mondiale gratuite Basic C#. Cette certification est conçue pour aider les développeurs de tous niveaux à apprendre les bases de C#, un langage de programmation populaire utilisé pour créer une variété d'applications, et vous pouvez l'afficher dans votre profil LinkedIn. Cette certification comprend 35 heures de formations Microsoft Learn et un examen de 80 questions hébergé sur freeCodeCamp. Ce cours couvre des sujets tels que les variables, les types de données, les structures de contrôle et la programmation orientée objet. « Notre certification Basic C# fournit exactement cela : la preuve de votre capacité à maîtriser ce langage polyvalent.

                Utilisation des fonctions PHP : des bases aux avancées Utilisation des fonctions PHP : des bases aux avancées Jun 15, 2023 pm 11:11 PM

                PHP est un langage de script côté serveur largement utilisé pour développer des sites Web dynamiques, des applications Web et d'autres services Internet. Dans le processus de développement d'applications PHP, l'utilisation de fonctions peut contribuer à simplifier le code, à améliorer la réutilisabilité du code et à réduire les coûts de développement. Cet article présentera l'utilisation de base et l'utilisation avancée des fonctions PHP. 1. Utilisation de base des fonctions PHP 1. Définir des fonctions En PHP, utilisez le mot-clé function pour définir des fonctions, par exemple : functiongreet($name){

                See all articles