Heim Datenbank MySQL-Tutorial MySQL-Datenbankoptimierung (4) - MySQL-Indexoptimierung

MySQL-Datenbankoptimierung (4) - MySQL-Indexoptimierung

Feb 27, 2017 pm 01:49 PM

1. Index-Grundlagen
Indextyp:

1. Gewöhnlicher Index: Erstellt in einem beliebigen Datentyp
2. Eindeutiger Index: eingeschränkter Index Der Wert muss eindeutig sein
3. Volltextindex: Er kann nur für Felder vom Typ char, varchar und text erstellt werden. Er wird hauptsächlich zur Verbesserung der Textabfragegeschwindigkeit verwendet. Unterstützung der MyISAM-Engine.
4. Einspaltiger Index: Erstellen Sie einen Index für ein einzelnes Feld in der Tabelle
5. Mehrspaltiger Index: Erstellen Sie einen Index für mehrere Felder
6. Räumlicher Index: Erstellt mithilfe räumlicher Parameter zur Bereitstellung das System mit der Effizienz des Erhaltens von Kontrolldaten
Grundlegende Operationen des Index:

CREATE TABLE t_user1(id INT ,
                     userName VARCHAR(20),
                     PASSWORD VARCHAR(20),
                     INDEX (userName)  
             );
             
CREATE TABLE t_user2(id INT ,
                     userName VARCHAR(20),
                     PASSWORD VARCHAR(20),
                     UNIQUE INDEX index_userName(userName)
             );
           
CREATE TABLE t_user3(id INT ,
                     userName VARCHAR(20),
                     PASSWORD VARCHAR(20),
                     INDEX index_userName_password(userName,PASSWORD)//多列索引
             );
             
CREATE  INDEX index_userName ON t_user4(userName);--对已经创建的表指定索引


CREATE  UNIQUE INDEX index_userName ON t_user4(userName);


CREATE  INDEX index_userName_password ON t_user4(userName,PASSWORD);


ALTER TABLE t_user5 ADD INDEX index_userName(userName);--修改索引


ALTER TABLE t_user5 ADD UNIQUE INDEX index_userName(userName);


ALTER TABLE t_user5 ADD INDEX index_userName_password(userName,PASSWORD);


DROP INDEX index_userName ON t_user5;


DROP INDEX index_userName_password ON t_user5;
Nach dem Login kopieren

Das Hinzufügen eines Indexes kann die Abfrage beschleunigen Effizienz und Vermeidung vollständiger Tabellendatenabfragen, stattdessen werden die Zieldaten durch Durchsuchen des Indexes gefunden. Wählen Sie t.name von Benutzer t aus, wobei t.id = 5 ist. Wenn ein Index für die Spalte „actor_id“ erstellt wird, verwendet MySQL den Index, um die Zeile mit id = 5 zu finden, d. h., es sucht zuerst nach dem Wert im Index und gibt dann alle Zeilen zurück, die die Datenzeile für den Wert enthalten.
Der Index kann eine oder mehrere Spalten enthalten. Wenn der Index mehrere Spalten enthält, ist auch die Reihenfolge der Spalten sehr wichtig, da MySQL nur die Präfixspalte ganz links im Index effizient verwenden kann. Darüber hinaus erfordern die Erstellung und Wartung von Indizes auch Systemressourcen. Dazu gehört auch die Erstellung effizienter Indizes zur Verbesserung der Abfrageeffizienz.
2. MySQL-Indextyp
Im Allgemeinen ist der Datenindex selbst auch sehr groß und es ist unmöglich, alles im Speicher zu speichern, daher ist der Index häufig Basierend auf der Indexdatei wird das Formular auf der Festplatte gespeichert. In diesem Fall kommt es im Vergleich zum Speicherzugriff zu einem Festplatten-E/A-Verbrauch während des Indexsuchvorgangs. Daher sollte die strukturelle Organisation des Index die Anzahl der Festplatten-E/A-Zugriffe während des Suchvorgangs minimieren. Dies erfordert eine hochwertige Datenstruktur zum Organisieren und Speichern von Datenbankindizes.
Allgemeine Indextypen nutzen Datenstrukturalgorithmen. Beispielsweise ist B-Tree sowohl ein Indextyp in MySQL als auch ein dynamischer Suchbaum: Binärer Suchbaum und Balanced Binary Search Tree, Binärbaumstruktur von B-Baum/B+-Baum/B*-Baum (B~Baum).
Da diese MySQL-Indextypen auf der Implementierung von Datenstrukturalgorithmen basieren, beginnt die allgemeine Entwicklung auf dieser Grundlage. Auch die Anwendungen von Indizes, die auf unterschiedlichen Datenstrukturen basieren, sind unterschiedlich.

3. Häufige Missverständnisse bei der Indexverwendung
1. Unabhängiger Spaltenindex
Falsche Verwendung von : Wählen Sie t.name von Benutzer t aus, wobei t.age+1=5 gilt. Für diese Bedingung age+1=5 kann MySQL nicht automatisch analysieren, selbst wenn ein Index für das Alter erstellt wird In der Spalte „MySQL“ wird die Indexabfrage während der Abfrage nicht verwendet und es wird weiterhin ein vollständiger Tabellenscan durchgeführt.
Falsche Verwendung von : select t.name from user t where TO_DAYS(`CURRENT_DATE`())-TO_DAYS(date_col)<=10; Das Gleiche wie oben
Richtiges Prinzip: Legen Sie die Indexspalte immer auf die separate Seite des Vergleichsoperators.
2. Mehrspaltiger Index
Häufige Fehler: Erstellen Sie einen unabhängigen Index ohne Spalten oder erstellen Sie mehrere Spalten falsch order Index, oder indizieren Sie einfach alle Spalten in der Where-Bedingung.
Korrekte Verwendung: Wählen Sie die entsprechende Indexreihenfolge für verschiedene Indextypen Wählen Sie beispielsweise t.name von Benutzer t aus, wobei t.staffId = 2 und custom_id=7;
Sollten wir als Antwort auf die obige Abfrage eine (staffId, custom_id) erstellen oder die Reihenfolge dieser beiden Spalten umkehren?

Am Beispiel von B-Tree bedeutet die Reihenfolge der Indexspalten, dass der Index zuerst von links nach rechts nach der Spalte ganz links sortiert wird. Im Allgemeinen ist es sinnvoll, die Felder mit der höchsten Häufigkeit von Filterbedingungen an den Anfang des Index zu setzen. Der so konzipierte Index kann die benötigten Zeilen schnellstmöglich herausfiltern.

4. Zusammenfassung

Wenn ich mir ein Java-Cloud-Plattform-Projekt ansehe, an dem ich zuvor gearbeitet habe, wurde das verwendete ORM-Framework verwendet. Damals hatte das Projekt langsame kaskadierende Abfragen, sodass es eine kombinierte JDBC+ORM-Formularprogrammierung kombinierte Designs mehrerer Datenbanken und zur Indexoptimierung müssen immer noch erneut angewendet werden. Im Allgemeinen verwenden die erstellten Indizes nur einspaltige Indizes und werden mit Primärschlüsseln erstellt. Dies stellt jedoch kein großes Problem dar. Das Problem der aufwändigen Abfrage, Tabellenstrukturoptimierung, Indexoptimierung und Abfrageoptimierung muss Hand in Hand gehen, aber das Verlassen auf die Neuauswahl oder Neuoptimierung des ORM-Frameworks kann das Problem nicht lösen.

Das Obige ist der Inhalt der MySQL-Datenbankoptimierung (4) – MySQL-Indexoptimierung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So stellen Sie eine Verbindung zur Datenbank von Apache her So stellen Sie eine Verbindung zur Datenbank von Apache her Apr 13, 2025 pm 01:03 PM

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.

CentOS installieren MySQL CentOS installieren MySQL Apr 14, 2025 pm 08:09 PM

Die Installation von MySQL auf CentOS umfasst die folgenden Schritte: Hinzufügen der entsprechenden MySQL Yum -Quelle. Führen Sie den Befehl mySQL-server aus, um den MySQL-Server zu installieren. Verwenden Sie den Befehl mySQL_SECURE_INSTALLATION, um Sicherheitseinstellungen vorzunehmen, z. B. das Festlegen des Stammbenutzerkennworts. Passen Sie die MySQL -Konfigurationsdatei nach Bedarf an. Tune MySQL -Parameter und optimieren Sie Datenbanken für die Leistung.

So starten Sie MySQL von Docker So starten Sie MySQL von Docker Apr 15, 2025 pm 12:09 PM

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

See all articles