


Ausführliche Erläuterung der Typen, Vor- und Nachteile von MySQL index_MySQL
Indizes sind spezielle Dateien (der Index der InnoDB-Datentabelle ist ein integraler Bestandteil des Tabellenbereichs). Sie enthalten Referenzzeiger auf alle Datensätze in der Datentabelle.
Hinweis:
[1] Indizes sind nicht allmächtig! Indizes können Datenabrufvorgänge beschleunigen, Datenänderungsvorgänge jedoch verlangsamen. Bei jeder Änderung eines Datensatzes muss der Index aktualisiert werden. Um diesen Mangel in einem bestimmten Programm auszugleichen, verfügen viele SQL-Befehle über ein DELAY_KEY_WRITE-Element. Die Funktion dieser Option besteht darin, MySQL vorübergehend daran zu hindern, den Index sofort zu aktualisieren, nachdem jeder neue Datensatz eingefügt und jeder vorhandene Datensatz durch diesen Befehl geändert wurde. Die Aktualisierung des Index wartet, bis alle Datensätze eingefügt/geändert wurden. In Situationen, in denen viele neue Datensätze in eine Datentabelle eingefügt werden müssen, ist die Rolle der Option DELAY_KEY_WRITE sehr offensichtlich.
[2] Darüber hinaus beanspruchen Indizes erheblichen Speicherplatz auf der Festplatte. Daher sollten nur die am häufigsten abgefragten und am häufigsten sortierten Datenspalten indiziert werden. Beachten Sie, dass eine Indizierung keine großen praktischen Auswirkungen hat, wenn eine Datenspalte viele doppelte Inhalte enthält.
Theoretisch ist es möglich, für jedes Feld in der Datentabelle einen Index zu erstellen, MySQL begrenzt jedoch die Gesamtzahl der Indizes in derselben Datentabelle auf 16.
1. Index der InnoDB-Datentabelle
Im Vergleich zu MyISAM-Datentabellen sind Indizes für InnoDB-Daten viel wichtiger. Bei InnoDB-Datentabellen sind Indizes viel wichtiger als bei InnoDB-Datentabellen. In InnoDB-Datentabellen spielen Indizes nicht nur eine Rolle bei der Suche nach Datensätzen, sondern sind auch die Grundlage für den Sperrmechanismus auf Datenzeilenebene. „Sperren auf Datenzeilenebene“ bedeutet das Sperren einzelner Datensätze, die während der Ausführung von Transaktionsvorgängen verarbeitet werden, um zu verhindern, dass andere Benutzer darauf zugreifen. Diese Sperre wirkt sich auf die Befehle SELECT...LOCK IN SHARE MODE, SELECT...FOR UPDATE und die Befehle INSERT, UPDATE und DELETE aus (ist aber nicht darauf beschränkt).
Aus Effizienzgründen erfolgt die Sperrung von InnoDB-Datentabellen auf Zeilenebene tatsächlich für deren Indizes und nicht für die Datentabelle selbst. Offensichtlich kann der Sperrmechanismus auf Datenzeilenebene nur dann wirksam sein, wenn die relevante Datentabelle über einen geeigneten Index zum Sperren verfügt.
2. Einschränkungen
Wenn in der Abfragebedingung der WEHERE-Klausel ein Ungleichheitszeichen (WHERE-Farbe != ...) vorhanden ist, kann MySQL den Index nicht verwenden.
Wenn in der Abfragebedingung der WHERE-Klausel eine Funktion (WHERE DAY(column) = ...) verwendet wird, kann MySQL den Index ebenfalls nicht verwenden.
Bei einer JOIN-Operation (wenn Daten aus mehreren Datentabellen extrahiert werden müssen) kann MySQL nur dann Indizes verwenden, wenn die Datentypen des Primärschlüssels und des Fremdschlüssels gleich sind.
Wenn in den Abfragebedingungen der WHERE-Klausel die Vergleichsoperatoren LIKE und REGEXP verwendet werden, kann MySQL den Index nur verwenden, wenn das erste Zeichen der Suchvorlage kein Platzhalterzeichen ist. Wenn die Abfragebedingung beispielsweise LIKE „abc%“ lautet, verwendet MySQL den Index. Wenn die Abfragebedingung LIKE „�c“ lautet, verwendet MySQL den Index nicht.
Bei einer ORDER BY-Operation verwendet MySQL den Index nur, wenn die Sortierbedingung kein Abfragebedingungsausdruck ist. (Bei Abfragen mit mehreren Datentabellen haben diese Indizes jedoch keinen Einfluss auf die Beschleunigung von ORDER BY, selbst wenn Indizes verfügbar sind.)
Wenn eine Datenspalte viele doppelte Werte enthält, führt dies selbst dann nicht zu guten Ergebnissen, wenn sie indiziert ist. Wenn eine Datenspalte beispielsweise nur Werte wie „0/1“ oder „J/N“ enthält, muss kein Index dafür erstellt werden.
Normaler Index, eindeutiger Index und Primärindex
1. Gewöhnlicher Index
Die einzige Aufgabe eines normalen Index (ein durch das Schlüsselwort KEY oder INDEX definierter Index) besteht darin, den Zugriff auf Daten zu beschleunigen. Daher sollten Indizes nur für diejenigen Datenspalten erstellt werden, die am häufigsten in Abfragebedingungen (Spalte WHERE = ...) oder Sortierbedingungen (Spalte ORDER BY) vorkommen. Wann immer möglich, sollten Sie zum Erstellen eines Index eine Datenspalte mit den übersichtlichsten und kompaktesten Daten (z. B. eine Datenspalte vom Typ Ganzzahl) auswählen.
2. Eindeutiger Index
Normale Indizes ermöglichen, dass die indizierten Datenspalten doppelte Werte enthalten. Da beispielsweise Personen möglicherweise denselben Namen haben, erscheint derselbe Name möglicherweise zweimal oder öfter in derselben Datentabelle „Mitarbeiterprofil“.
Wenn Sie feststellen können, dass eine bestimmte Datenspalte nur voneinander verschiedene Werte enthält, sollten Sie beim Erstellen eines Indexes für diese Datenspalte das Schlüsselwort UNIQUE verwenden, um diesen als eindeutigen Index zu definieren. Dies hat folgende Vorteile: Erstens vereinfacht MySQL die Verwaltung dieses Indexes und der Index wird effizienter. Zweitens überprüft MySQL automatisch den Wert dieses Felds im neuen Datensatz, wenn ein neuer Datensatz in die Datentabelle eingefügt wird Dieses Feld ist bereits in einem Datensatz enthalten. Wenn dies der Fall ist, weigert sich MySQL, den neuen Datensatz einzufügen. Mit anderen Worten: Ein eindeutiger Index kann die Einzigartigkeit von Datensätzen sicherstellen. Tatsächlich besteht der Zweck der Erstellung eindeutiger Indizes in vielen Fällen nicht darin, die Zugriffsgeschwindigkeit zu erhöhen, sondern lediglich darin, Datenduplizierung zu vermeiden.
3. Hauptindex
Es wurde bereits mehrfach betont: Für das Primärschlüsselfeld muss ein Index erstellt werden. Dieser Index ist der sogenannte „Primärindex“. Der einzige Unterschied zwischen einem Primärindex und einem eindeutigen Index besteht darin, dass das Schlüsselwort, das bei der Definition des ersteren verwendet wird, PRIMARY statt UNIQUE ist.
4. Fremdschlüsselindex
Wenn eine Fremdschlüsseleinschränkung für ein Fremdschlüsselfeld definiert ist, definiert MySQL einen internen Index, um die Fremdschlüsseleinschränkungen möglichst effizient zu verwalten und zu nutzen.
5. Zusammengesetzter Index
Indizes können mehrere Datenspalten abdecken, z. B. den Index INDEX(SpalteA, SpalteB). Das Merkmal dieses Index besteht darin, dass MySQL einen solchen Index selektiv verwenden kann. Wenn der Abfragevorgang nur einen Index für die Datenspalte Spalte A verwenden muss, können Sie den zusammengesetzten Index INDEX (Spalte A, Spalte B) verwenden. Diese Verwendung gilt jedoch nur für die Kombination von Datenspalten, die im zusammengesetzten Index an erster Stelle stehen. Beispielsweise kann INDEX(A, B, C) als Index von A oder (A, B) verwendet werden, aber nicht als Index von B, C oder (B, C).
6. Indexlänge
Beim Definieren von Indizes für Datenspalten vom Typ CHAR und VARCHAR können Sie die Länge des Index auf eine bestimmte Anzahl von Zeichen begrenzen (diese Anzahl muss kleiner sein als die maximal zulässige Anzahl von Zeichen in diesem Feld). Dies hat den Vorteil, dass eine Indexdatei generiert werden kann, die kleiner und schneller abrufbar ist. In den meisten Anwendungen basieren die String-Daten in der Datenbank meist auf verschiedenen Namen. Die Einstellung der Indexlänge auf 10 bis 15 Zeichen reicht aus, um den Suchbereich auf wenige Datensätze einzugrenzen.
Beim Erstellen von Indizes für Datenspalten vom Typ BLOB und TEXT muss die Länge des Index begrenzt werden; die von MySQL maximal zulässige Indexlänge beträgt 255 Zeichen.
Volltextindex
Ein normaler Index für ein Textfeld kann nur das Abrufen der Zeichenfolge beschleunigen, die am Anfang des Feldinhalts erscheint (d. h. der Zeichen am Anfang des Feldinhalts). Wenn das Feld einen größeren Textabschnitt speichert, der aus mehreren oder sogar mehreren Wörtern besteht, sind gewöhnliche Indizes von geringem Nutzen. Diese Art des Abrufs erfolgt häufig in der Form LIKE %word%, was für MySQL sehr kompliziert ist. Wenn die zu verarbeitende Datenmenge groß ist, ist die Antwortzeit sehr lang.
Hier können Volltextindizes hilfreich sein. Bei der Generierung dieser Art von Index erstellt MySQL eine Liste aller Wörter, die im Text vorkommen, und Abfragevorgänge rufen relevante Datensätze basierend auf dieser Liste ab. Der Volltextindex kann zusammen mit der Datentabelle erstellt oder später bei Bedarf verwendet werden
Fügen Sie den folgenden Befehl hinzu:
ALTER TABLE Tabellenname ADD FULLTEXT(Spalte1, Spalte2)
Mit einem Volltextindex können Sie mit dem SELECT-Abfragebefehl Datensätze abrufen, die ein oder mehrere gegebene Wörter enthalten. Das Folgende ist die grundlegende Syntax dieser Art von Abfragebefehl:
SELECT * FROM Tabellenname
WHERE MATCH(column1, columns2) AGAINST(‘word1′, ‚word2′, ‚word3′)
Der obige Befehl fragt alle Datensätze ab, die Wort1, Wort2 und Wort3 in den Feldern Spalte1 und Spalte2 enthalten.
Hinweis: InnoDB-Datentabellen unterstützen keine Volltextindizierung.
Abfrage- und Indexoptimierung
Nur wenn genügend Testdaten in der Datenbank vorhanden sind, haben die Leistungstestergebnisse einen tatsächlichen Referenzwert. Befinden sich in der Testdatenbank nur wenige hundert Datensätze, werden diese häufig bereits nach der Ausführung des ersten Abfragebefehls alle in den Speicher geladen, wodurch nachfolgende Abfragebefehle sehr schnell ausgeführt werden – unabhängig davon, ob Indizes verwendet werden. Die Ergebnisse des Datenbankleistungstests sind nur dann aussagekräftig, wenn die Anzahl der Datensätze in der Datenbank 1.000 übersteigt und die Gesamtdatenmenge den Gesamtspeicher auf dem MySQL-Server übersteigt.
Wenn Benutzer nicht sicher sind, welche Datenspalten zum Erstellen von Indizes verwendet werden sollen, kann häufig der Befehl EXPLAIN SELECT hilfreich sein. Dabei wird einem gewöhnlichen SELECT-Befehl lediglich das Schlüsselwort EXPLAIN vorangestellt. Mit diesem Schlüsselwort führt MySQL den SELECT-Befehl nicht aus, sondern analysiert ihn. MySQL listet Informationen wie den Abfrageausführungsprozess und die verwendeten Indizes (falls vorhanden) in Form einer Tabelle auf.
In der Ausgabe des EXPLAIN-Befehls ist Spalte 1 der Name der aus der Datenbank gelesenen Datentabelle und sie sind in der Reihenfolge angeordnet, in der sie gelesen werden. Die Typspalte gibt die Assoziationsbeziehung (JOIN) zwischen dieser Datentabelle und anderen Datentabellen an. Unter den verschiedenen Arten von Beziehungen ist System die effizienteste, gefolgt von const, eq_ref, ref, range, index und All (Alle bedeuten: Diese Daten entsprechen jedem Datensatz in der Datentabelle der oberen Ebene. Alle Datensätze in der Tabelle müssen gelesen werden (dies lässt sich oft durch einen Index vermeiden).
Die Datenspalte „posable_keys“ gibt die verschiedenen Indizes an, die MySQL bei der Suche nach Datensätzen verwenden kann. Die Schlüsseldatenspalte ist der tatsächlich von MySQL ausgewählte Index. Die Länge dieses Index in Bytes ist in der Datenspalte key_len angegeben. Für einen Index für eine INTEGER-Datenspalte wäre die Bytelänge beispielsweise 4. Wenn ein zusammengesetzter Index verwendet wird, können Sie in der Datenspalte key_len auch sehen, welche Teile davon von MySQL verwendet werden. Generell gilt: Je kleiner der Wert in der Datenspalte key_len, desto besser (d. h. schneller).
Die Referenzdatenspalte gibt den Namen der Datenspalte in einer anderen Datentabelle in der Beziehung an. Die Zeilendatenspalte ist die Anzahl der Datenzeilen, die MySQL bei der Ausführung dieser Abfrage voraussichtlich aus dieser Datentabelle lesen wird. Das Produkt aller Zahlen in der Zeilendatenspalte gibt uns eine Vorstellung davon, wie viele Kombinationen diese Abfrage verarbeiten muss.
Schließlich enthält die zusätzliche Datenspalte weitere Informationen zur JOIN-Operation. Wenn MySQL beispielsweise beim Ausführen dieser Abfrage eine temporäre Datentabelle erstellen muss, werden in der zusätzlichen Spalte die Wörter „using temporary“ angezeigt.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird, und ich hoffe, dass Sie mich sehr unterstützen werden.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





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 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.

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

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.

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.

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

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.

Der Schlüssel zur eleganten Installation von MySQL liegt darin, das offizielle MySQL -Repository hinzuzufügen. Die spezifischen Schritte sind wie folgt: Laden Sie den offiziellen GPG -Schlüssel von MySQL herunter, um Phishing -Angriffe zu verhindern. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting
