


Zusammenfassung der MySQL-Indizes – detaillierte Einführung in die MySQL-Indextypen und deren Erstellung
Was die Vorteile von MySQL-Indizes betrifft: Wenn MySQL, das ordnungsgemäß entwickelt wurde und Indizes verwendet, ein Lamborghini ist, dann ist MySQL, das nicht entwickelt wurde und Indizes verwendet, ein menschliches Dreirad. Bei Tabellen ohne Indizes kann eine einzelne Tabellenabfrage Hunderttausende Daten umfassen, was den Engpass darstellt. Normalerweise können große Websites Hunderttausende oder sogar Millionen Daten an einem einzigen Tag generieren, und Abfragen ohne Indizes werden sehr langsam. Am Beispiel von WordPress fügen seine mehreren Datentabellen Indizes zu häufig abgefragten Feldern hinzu. Beispielsweise verfügt die Tabelle wp_comments über einen BTREE-Index, der für 5 Felder ausgelegt ist.
Ein einfacher Vergleichstest
Nehmen Sie die Daten, die ich letztes Jahr getestet habe, als einfaches Beispiel. Mehr als 20 Datenquellen haben zufällig 2 Millionen Daten generiert. Im Durchschnitt hat jede Datenquelle etwa 100.000 Zweitens ist die Tabellenstruktur relativ einfach und enthält nur eine automatisch inkrementierende ID, einen char-Typ, einen text-Typ und einen int-Typ. Die einzelne Tabelle ist 2G groß und verwendet die MyIASM-Engine. Starten des Tests ohne Hinzufügen von Indizes.
Führen Sie die folgende SQL-Anweisung aus:
mysql> SELECT id,FROM_UNIXTIME(time) FROM article WHERE a.title='测试标题'
Die für die Abfrage erforderliche Zeit ist sehr beängstigend. Wenn Sie gemeinsame Abfragen und andere Einschränkungen hinzufügen, geht die Datenbank verloren Verrückt. Verbraucht Speicher und beeinträchtigt die Ausführung von Front-End-Programmen. Fügen Sie zu diesem Zeitpunkt einen BTREE-Index zum Titelfeld hinzu:
mysql> ALTER TABLE article ADD INDEX index_article_title ON title(200);
Führen Sie die obige Abfrageanweisung erneut aus, und der Kontrast ist sehr offensichtlich:
Das Konzept des MySQL-Index
Indizes sind spezielle Dateien (die Indizes der InnoDB-Datentabelle sind Bestandteil des Tabellenbereichs). Sie enthalten Referenzzeiger auf alle Datensätze in der Datentabelle. Allgemeiner ausgedrückt ist ein Datenbankindex wie das Inhaltsverzeichnis am Anfang eines Buches, das Datenbankabfragen beschleunigen kann. Wenn in der obigen SQL-Anweisung kein Index vorhanden ist, durchläuft die Datenbank alle 200 Daten und wählt diejenigen aus, die die Bedingungen erfüllen. Mit dem entsprechenden Index sucht die Datenbank direkt nach den Optionen, die die Bedingungen im Index erfüllen . Wenn wir die SQL-Anweisung in „SELECT * FROM Article WHERE id=2000000“ ändern, möchten Sie, dass die Datenbank Ihnen die Ergebnisse nach dem Lesen von 2 Millionen Datenzeilen nacheinander liefert oder sie direkt im Index lokalisiert? Der klare Zeitvergleich zwischen den beiden Bildern oben gibt bereits die Antwort (Hinweis: Im Allgemeinen generieren Datenbanken standardmäßig Indizes für den Primärschlüssel).
Indizes werden in Clustered-Indizes und Nicht-Cluster-Indizes unterteilt. Cluster-Indizes werden nach dem physischen Speicherort der Daten geordnet. Nicht-Cluster-Indizes können jedoch die Geschwindigkeit des Zeilenabrufs verbessern. während der nicht gruppierte Index beim Abrufen einzelner Zeilen schnell ist.
Typen von MySQL-Indizes
Dies ist der einfachste Index. Der für das Titelfeld oben erstellte Index unterliegt keinen Einschränkungen Ein gewöhnlicher Index, der Standardindex vom Typ BTREE in MyIASM, ist auch der Index, den wir in den meisten Fällen verwenden.
2. Eindeutiger Index01 –直接创建索引 02 CREATE INDEX index_name ON table(column(length)) 03 –修改表结构的方式添加索引 04 ALTER TABLE table_name ADD INDEX index_name ON (column(length)) 05 –创建表的时候同时创建索引 06 CREATE TABLE `table` ( 07 `id` int(11) NOT NULL AUTO_INCREMENT , 08 `title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 09 `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL , 10 `time` int(10) NULL DEFAULT NULL , 11 PRIMARY KEY (`id`), 12 INDEX index_name (title(length)) 13 ) 14 –删除索引 15 DROP INDEX index_name ON table
ähnelt einem normalen Index, außer dass der Wert der Indexspalte eindeutig sein muss, aber Nullwerte sind zulässig (Beachten Sie, dass es sich vom Primärschlüssel unterscheidet). Wenn es sich um einen kombinierten Index handelt, muss die Kombination der Spaltenwerte eindeutig sein und die Erstellungsmethode ähnelt der eines normalen Index.
01 –创建唯一索引 02 CREATE UNIQUE INDEX indexName ON table(column(length)) 03 –修改表结构 04 ALTER TABLE table_name ADD UNIQUE indexName ON (column(length)) 05 –创建表的时候直接指定 06 CREATE TABLE `table` ( 07 `id` int(11) NOT NULL AUTO_INCREMENT , 08 `title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 09 `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL , 10 `time` int(10) NULL DEFAULT NULL , 11 PRIMARY KEY (`id`), 12 UNIQUE indexName (title(length)) 13 );
MySQL unterstützt Volltextindex und Volltextsuche ab Version 3.23 .23, FULLTEXT-Index Nur für MyISAM-Tabellen verfügbar; sie können aus CHAR-, VARCHAR- oder TEXT-Spalten als Teil einer CREATE TABLE-Anweisung erstellt oder später mit ALTER TABLE oder CREATE INDEX hinzugefügt werden. ////Bei größeren Datensätzen ist die Eingabe Ihrer Daten in eine Tabelle ohne FULLTEXT-Index und die anschließende Erstellung des Index schneller als die Eingabe der Daten in einen vorhandenen FULLTEXT-Index. Bedenken Sie jedoch, dass die Erstellung von Volltextindizes bei Datentabellen mit großer Kapazität ein sehr zeitaufwändiger und speicherplatzintensiver Prozess ist.
01 –创建表的适合添加全文索引 02 CREATE TABLE `table` ( 03 `id` int(11) NOT NULL AUTO_INCREMENT , 04 `title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 05 `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL , 06 `time` int(10) NULL DEFAULT NULL , 07 PRIMARY KEY (`id`), 08 FULLTEXT (content) 09 ); 10 –修改表结构添加全文索引 11 ALTER TABLE article ADD FULLTEXT index_content(content) 12 –直接创建索引 13 CREATE FULLTEXT INDEX index_content ON article(content)
Der Abfrageeffekt mehrerer einspaltiger Indizes unterscheidet sich von das eines einzelnen mehrspaltigen Indexes, da MySQL beim Ausführen einer Abfrage nur einen Index verwenden kann und aus mehreren Indizes den restriktivsten Index auswählt.
5. Zusammengesetzter Index (Präfix ganz links)
Üblicherweise verwendete SQL-Abfrageanweisungen unterliegen im Allgemeinen mehr Einschränkungen. Um die Effizienz von MySQL weiter zu steigern, ist es notwendig, die Einrichtung eines zusammengesetzten Indexes in Betracht zu ziehen . In der obigen Tabelle wird beispielsweise ein kombinierter Index für Titel und Zeit erstellt: ALTER TABLE Article ADD INDEX index_titme_time (title(50), time(10)). Das Erstellen eines solchen kombinierten Index entspricht tatsächlich dem Erstellen der folgenden zwei Sätze kombinierter Indizes:
–Titel, Zeit
–Titel
Warum gibt es keinen kombinierten Index wie Zeit? ? Wolltuch? Dies ist auf das „ganz linke Präfix“ des MySQL-Verbundindex zurückzuführen. Das einfache Verständnis besteht darin, die Kombination nur ganz links zu beginnen. Nicht nur Abfragen, die diese beiden Spalten enthalten, verwenden den kombinierten Index, wie in den folgenden SQLs gezeigt:
Das Obige ist eine Zusammenfassung der MySQL-Indizes – eine detaillierte Einführung in die MySQL-Indextypen und die Erstellung von Inhalten, z Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!1 –使用到上面的索引 2 SELECT * FROM article WHREE title='测试' AND time=1234567890; 3 SELECT * FROM article WHREE utitle='测试'; 4 –不使用上面的索引 5 SELECT * FROM article WHREE time=1234567890;

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.

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.

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.
