Heim Datenbank MySQL-Tutorial Einige häufige Missverständnisse über Mysq

Einige häufige Missverständnisse über Mysq

Jun 20, 2017 pm 03:37 PM
基础

Häufige Missverständnisse

    1. count(1) und count(primary_key) sind besser als count(*)

    Um die Anzahl der Datensätze zu zählen, verwenden viele Leute count(1) und count(primary_key) anstelle von count(*). Sie glauben, dass dies eine bessere Leistung erbringt. In einigen Szenarien kann dies zu einer schlechteren Leistung führen, da die Datenbank einige spezielle Optimierungen für den Zählvorgang count(*) vorgenommen hat.
      1. count(column) und count(*) sind gleich

      Dieses Missverständnis selbst unter vielen leitenden Ingenieuren Es ist unter Datenbankadministratoren weit verbreitet und wird von vielen Menschen als selbstverständlich angesehen. Tatsächlich sind count(column) und count(*) völlig unterschiedliche Operationen und haben völlig unterschiedliche Bedeutungen.
      Anzahl(Spalte) bedeutet, wie viele Datensätze in der Ergebnismenge deren Spaltenfeld nicht leer ist
      Anzahl(*) bedeutet, wie viele Datensätze in der gesamten Ergebnismenge vorhanden sind
        1. Die Auswahl von a, b aus … ermöglicht der Datenbank den Zugriff auf weniger Daten als die Auswahl von a, b, c aus …

        Dieses Missverständnis ist Der Hauptgrund dafür ist, dass sie nicht viel über die Speicherprinzipien der Datenbank wissen.
        Tatsächlich werden die meisten relationalen Datenbanken in Zeilen gespeichert, und Datenzugriffsvorgänge basieren auf einer E/A-Einheit fester Größe (Block oder Seite genannt ... Meistens mehrere). Zeilen werden in jeder E/A-Einheit gespeichert, und jede Zeile speichert alle Felder der Zeile (mit Ausnahme spezieller Feldtypen wie lob).
        Ob wir also ein Feld oder mehrere Felder verwenden, ist die Datenmenge, auf die die Datenbank in der Tabelle zugreifen muss, tatsächlich dieselbe.
        Natürlich gibt es Ausnahmen, das heißt, unsere Abfrage kann im Index abgeschlossen werden. Das heißt, wenn nur zwei Felder a und b abgerufen werden, ist es nicht erforderlich, die Tabelle zurückzugeben Das Feld c ist nicht im verwendeten Index. Sie müssen zur Tabelle zurückkehren, um deren Daten zu erhalten. In diesem Fall wird das E/A-Volumen zwischen den beiden sehr unterschiedlich sein.
          1. Ordnung nach muss einen Sortiervorgang erfordern

          Wir wissen, dass die Indexdaten tatsächlich geordnet sind, wenn unser If Die erforderlichen Daten befinden sich in derselben Reihenfolge wie ein Index und unsere Abfrage wird über diesen Index ausgeführt. Die Datenbank lässt den Sortiervorgang im Allgemeinen aus und gibt die Daten direkt zurück, da die Datenbank weiß, dass die Daten bereits unseren Sortieranforderungen entsprechen.
          Tatsächlich ist die Verwendung von Indizes zur Optimierung von SQL mit Sortieranforderungen eine sehr wichtige Optimierungsmethode
          Erweiterte Lektüre: Analyse der Implementierung von MySQL ORDER BY, dem grundlegenden Implementierungsprinzip von GROUP BY in MySQL und Das grundlegende Implementierungsprinzip von MySQL DISTINCT wird in diesen drei Artikeln ausführlicher analysiert, insbesondere im ersten.
            1. Wenn der Ausführungsplan eine Dateisortierung enthält , die Festplatte wird verarbeitet Dateisortierung

            Dieses Missverständnis ist nicht unsere Schuld, sondern liegt an der von MySQL-Entwicklern verwendeten Formulierung. Bei „Filesort“ handelt es sich um die Informationen, die möglicherweise in der Spalte „Extra“ angezeigt werden, wenn wir den Befehl „explain“ verwenden, um den Ausführungsplan einer SQL-Anweisung anzuzeigen.
            Tatsächlich wird immer dann, wenn eine SQL-Anweisung einen Sortiervorgang erfordert, „Filesort wird verwendet“ angezeigt, was nicht bedeutet, dass ein Dateisortiervorgang durchgeführt wird.
            Erweiterte Lektüre: Dateisortierung in der MySQL-Befehlsausgabe verstehen, eine ausführlichere Einführung habe ich hier
            • Grundprinzipien

              1. So wenige Verknüpfungen wie möglich

              Der Vorteil von MySQL ist die Einfachheit, aber das ist in einigen Aspekten tatsächlich sein Nachteil. Der MySQL-Optimierer ist hocheffizient, aber aufgrund seiner begrenzten Menge an statistischen Informationen besteht eine größere Möglichkeit von Abweichungen im Arbeitsprozess des Optimierers. Bei komplexem Multi-Table-Join liegt es einerseits an der begrenzten Optimierung, andererseits wurden bei Join nur unzureichende Anstrengungen unternommen, so dass die Leistung immer noch weit hinter der von Vorgängern in relationalen Datenbanken wie Oracle zurückbleibt. Wenn es sich jedoch um eine einfache Einzeltabellenabfrage handelt, ist diese Lücke sehr gering und in einigen Szenarien sogar besser als bei diesen Datenbankvorgängern.
                1. So wenig wie möglich sortieren

                Sortiervorgänge verbrauchen mehr CPU-Ressourcen, daher kann eine Reduzierung der Sortierung Cache-Treffer reduzieren In Szenarien mit ausreichenden E/A-Funktionen wie hoher Rate wirkt sich dies stark auf die Antwortzeit von SQL aus.
                Für MySQL gibt es viele Möglichkeiten, die Sortierung zu reduzieren, wie zum Beispiel:
                • Optimieren Sie, indem Sie den Index zum Sortieren verwenden, wie im obigen Missverständnis erwähnt

                • Reduzieren Sie die Anzahl der an der Sortierung beteiligten Datensätze

                • Sortieren Sie Daten nicht, es sei denn, dies ist erforderlich.

                • Vermeiden Sie ressourcenintensive SQL-Anweisungen mit DISTINCT, UNION, MINUS, INTERSECT, ORDER BY, um die Ausführung der SQL-Engine zu starten. Die aufwändige Sortierfunktion (SORT) erfordert einen Sortiervorgang, während andere mindestens zwei Sortiervorgänge erfordern

                Das obige ist der detaillierte Inhalt vonEinige häufige Missverständnisse über Mysq. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

                Erklärung dieser Website
                Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

                Heiße KI -Werkzeuge

                Undresser.AI Undress

                Undresser.AI Undress

                KI-gestützte App zum Erstellen realistischer Aktfotos

                AI Clothes Remover

                AI Clothes Remover

                Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

                Undress AI Tool

                Undress AI Tool

                Ausziehbilder kostenlos

                Clothoff.io

                Clothoff.io

                KI-Kleiderentferner

                AI Hentai Generator

                AI Hentai Generator

                Erstellen Sie kostenlos Ai Hentai.

                Heißer Artikel

                R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
                3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
                R.E.P.O. Beste grafische Einstellungen
                3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
                R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
                3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
                WWE 2K25: Wie man alles in Myrise freischaltet
                4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

                Heiße Werkzeuge

                Notepad++7.3.1

                Notepad++7.3.1

                Einfach zu bedienender und kostenloser Code-Editor

                SublimeText3 chinesische Version

                SublimeText3 chinesische Version

                Chinesische Version, sehr einfach zu bedienen

                Senden Sie Studio 13.0.1

                Senden Sie Studio 13.0.1

                Leistungsstarke integrierte PHP-Entwicklungsumgebung

                Dreamweaver CS6

                Dreamweaver CS6

                Visuelle Webentwicklungstools

                SublimeText3 Mac-Version

                SublimeText3 Mac-Version

                Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

                PHP-Grundlagen-Tutorial: Vom Anfänger zum Meister PHP-Grundlagen-Tutorial: Vom Anfänger zum Meister Jun 18, 2023 am 09:43 AM

                PHP ist eine weit verbreitete serverseitige Open-Source-Skriptsprache, die alle Aufgaben in der Webentwicklung bewältigen kann. PHP wird in der Webentwicklung häufig verwendet, insbesondere wegen seiner hervorragenden Leistung bei der dynamischen Datenverarbeitung, weshalb es von vielen Entwicklern geliebt und verwendet wird. In diesem Artikel erklären wir Ihnen Schritt für Schritt die Grundlagen von PHP, um Anfängern den Einstieg bis zum Erlernen von PHP-Kenntnissen zu erleichtern. 1. Grundlegende Syntax PHP ist eine interpretierte Sprache, deren Code HTML, CSS und JavaScript ähnelt. Jede PHP-Anweisung endet mit einem Semikolon

                Kann ich Linux von Grund auf lernen? Was muss ich lernen? Kann ich Linux von Grund auf lernen? Was muss ich lernen? Feb 19, 2024 pm 12:57 PM

                Wenn Sie in der IT-Branche arbeiten, aber Programmieren lernen möchten, für welche Technologie sollten Sie sich natürlich für den Betrieb und die Wartung von Linux entscheiden? Linux ist eine sehr beliebte Technologie auf dem Markt, mit einem breiten Anwendungsspektrum und guten Beschäftigungsaussichten, die bei vielen Menschen beliebt ist. Die Frage ist also: Kann man den Betrieb und die Wartung von Linux ohne Grundkenntnisse erlernen? Auf dem Servermarkt hat das Linux-System aufgrund seiner Vorteile wie Stabilität, Sicherheit, kostenlose Open Source, Effizienz und Komfort einen Marktanteil von bis zu 80 % Daraus ist ersichtlich, dass Linux-Anwendungen sehr beliebt sind. Ob jetzt oder in Zukunft, das Erlernen von Linux ist eine sehr gute Wahl. Ob es möglich ist, von Grund auf zu lernen? Meine Antwort lautet natürlich. Der Präsenzkurs „Linux“ von Oldboy Education ist speziell für Personen ohne Grundkenntnisse konzipiert

                Lernen Sie die Grundlagen der Go-Sprachvariablen Lernen Sie die Grundlagen der Go-Sprachvariablen Mar 22, 2024 pm 09:39 PM

                Die Go-Sprache ist eine von Google entwickelte statisch typisierte, kompilierte Sprache. Ihre prägnanten und effizienten Funktionen haben bei Entwicklern große Aufmerksamkeit und Begeisterung erregt. Beim Erlernen der Go-Sprache ist die Beherrschung der Grundkenntnisse über Variablen ein entscheidender Schritt. In diesem Artikel werden grundlegende Kenntnisse wie die Definition, Zuweisung und Typinferenz von Variablen in der Go-Sprache anhand spezifischer Codebeispiele erläutert, um den Lesern zu helfen, diese Wissenspunkte besser zu verstehen und zu beherrschen. In der Go-Sprache können Sie das Schlüsselwort var verwenden, um eine Variable zu definieren. Dies ist das Format des Variablennamens des Variablentyps var.

                Einführung in die PHP-Grundlagen: So verwenden Sie die Echo-Funktion zur Ausgabe von Textinhalten Einführung in die PHP-Grundlagen: So verwenden Sie die Echo-Funktion zur Ausgabe von Textinhalten Jul 30, 2023 pm 05:38 PM

                Grundlegende Einführung in PHP: So verwenden Sie die Echo-Funktion zur Ausgabe von Textinhalten. Bei der PHP-Programmierung müssen Sie häufig Textinhalte auf einer Webseite ausgeben. In diesem Fall können Sie die Echo-Funktion verwenden. In diesem Artikel wird die Verwendung der Echo-Funktion zur Ausgabe von Textinhalten vorgestellt und Beispielcode bereitgestellt. Bevor Sie beginnen, stellen Sie zunächst sicher, dass Sie PHP installiert und die Laufumgebung konfiguriert haben. Wenn PHP noch nicht installiert ist, können Sie die neueste stabile Version von der offiziellen PHP-Website (https://www.php.net) herunterladen.

                Detaillierte Erläuterung der Funktionen der C-Sprache: grundlegende bis fortgeschrittene, umfassende Analyse der Verwendung von Funktionen Detaillierte Erläuterung der Funktionen der C-Sprache: grundlegende bis fortgeschrittene, umfassende Analyse der Verwendung von Funktionen Feb 18, 2024 pm 02:25 PM

                Funktionsenzyklopädie der C-Sprache: Von einfach bis fortgeschritten, ausführliche Erklärung der Verwendung von Funktionen, spezifische Codebeispiele erforderlich Einführung: Die C-Sprache ist eine weit verbreitete Programmiersprache und aufgrund ihrer leistungsstarken Funktionen und Flexibilität die erste Wahl vieler Entwickler. In der C-Sprache ist Funktion ein wichtiges Konzept. Sie kann einen Codeabschnitt zu einem unabhängigen Modul zusammenfassen und so die Wiederverwendbarkeit und Wartbarkeit des Codes verbessern. In diesem Artikel wird die Verwendung von C-Sprachfunktionen von Grund auf vorgestellt und schrittweise weiterentwickelt, um den Lesern dabei zu helfen, die Fähigkeiten des Funktionsschreibens zu erlernen. 1. Definition und Aufruf von Funktionen in C

                PHP-Studiennotizen: Grundlagen der objektorientierten Programmierung PHP-Studiennotizen: Grundlagen der objektorientierten Programmierung Oct 09, 2023 pm 12:46 PM

                PHP-Studiennotizen: Grundlagen der objektorientierten Programmierung, spezifische Codebeispiele sind erforderlich. Einführung: Objektorientierte Programmierung (kurz OOP) ist eine Programmierdenkweise, die das Problem in mehrere Objekte zerlegt und die Interaktion zwischen Objekten definiert, um komplexe Probleme zu lösen Programmierprobleme. Als leistungsstarke Programmiersprache unterstützt PHP auch die objektorientierte Programmierung. In diesem Artikel werden die grundlegenden Konzepte und die allgemeine Syntax der objektorientierten Programmierung in PHP vorgestellt und spezifische Codebeispiele bereitgestellt. Art

                Verwendung von PHP-Funktionen: von den Grundlagen bis zum Fortgeschrittenen Verwendung von PHP-Funktionen: von den Grundlagen bis zum Fortgeschrittenen Jun 15, 2023 pm 11:11 PM

                PHP ist eine weit verbreitete serverseitige Skriptsprache zur Entwicklung dynamischer Websites, Webanwendungen und anderer Internetdienste. Bei der Entwicklung von PHP-Anwendungen kann die Verwendung von Funktionen dazu beitragen, den Code zu vereinfachen, die Wiederverwendbarkeit des Codes zu verbessern und die Entwicklungskosten zu senken. In diesem Artikel werden die grundlegende Verwendung und die erweiterte Verwendung von PHP-Funktionen vorgestellt. 1. Grundlegende Verwendung von PHP-Funktionen 1. Funktionen definieren Verwenden Sie in PHP das Schlüsselwort function, um Funktionen zu definieren, zum Beispiel: functiongreet($name){

                Referenzmethoden relativ zur absoluten Positionierung Referenzmethoden relativ zur absoluten Positionierung Jan 23, 2024 am 09:18 AM

                Die absolute Positionierung ist eine der am häufigsten verwendeten Positionierungsmethoden in CSS. Sie steuert die Position eines Elements auf der Seite, indem sie die Versatzposition des Elements relativ zu seinem nächstgelegenen „positionierten“ Vorgängerelement angibt. In diesem Artikel werden die Grundkonzepte der absoluten Positionierung vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Referenzmethode besser zu verstehen und anzuwenden. Die absolute Positionierung wird erreicht, indem das Positionsattribut eines Elements auf „absolut“ gesetzt wird. Wenn ein Element auf absolute Positionierung eingestellt ist, können Sie oben, unten, links und rechts festlegen

                See all articles