Wie hoch ist der Leistungsverbrauch der MySQL-Tabellenrückgabe?
1 Leistungsverbrauch der Tabellenrückgabe
Unabhängig vom Einzelspaltenindex oder gemeinsamen Index entspricht ein Index einem unabhängigen B+-Indexbaum Die Indexbaumknoten enthalten nur:
Feldwerte im Index
Primärschlüsselwert
Auch wenn die erforderlichen Daten gemäß den Bedingungen gemäß dem Indexbaum gefunden werden, handelt es sich nur um die Werte mehrerer Felder und Primärschlüsselwerte im Index. Wenn Sie einen select *
ausführen, wird dies weiterhin der Fall sein. Um andere Felder abzurufen, müssen Sie zur Tabelle zurückkehren und im Clustered-Index nach dem Blattknoten des Clusters suchen index ist die Datenseite. Nur wenn Sie die Datenseite finden, können Sie alle Feldwerte einer Datenzeile auslesen.
Ähnlich wie bei select *
,那就还得其他字段,就需回表,根据主键到聚簇索引里找,聚簇索引的叶节点是数据页,找到数据页才能把一行数据所有字段值读出来。
所以类似
select * from table order by xx1,xx2,xx3
得从联合索引的索引树里按序取出所有数据,接着对每条数据都走一个主键的聚簇索引查找,性能不高。
有时MySQL
执行引擎可能认为,你要是类似
select * from table order by xx1,xx2,xx3
相当于得把联合索引和聚簇索引,两个索引的所有数据都扫描一遍,那还不如不走联合索引,直接全表扫描得了,这样就只需扫描一个主键索引。
但若形如:
select * from table order by xx1,xx2,xx3 limit 10
那执行引擎就知道你先扫描联合索引的索引树,拿到10条数据,接着对10条数据在聚簇索引里查找10次即可,那就还是会走联合索引。
2 覆盖索引
覆盖索引不是一种索引,只是一种基于索引查询的方式,即针对类似
select xx1,xx2,xx3 from table order by xx1,xx2,xx3
仅需联合索引里的几个字段的值,那就只需扫描联合索引的索引树,无需回表找其它字段,这种查询方式就是覆盖索引。
所以当你使用联合索引时,注意是否可能会导致大量回表到聚簇索引,若回表聚簇索引的次数太多,可能就直接给你做成全表扫描而不走联合索引了。
尽可能还是在SQL里指定你仅需要的字段,而不要暴力select *
,最好直接走覆盖索引。
即使无可避免地要回表,你也尽可能用limit
、 where
rrreee
Manchmal denkt die
MySQL
-Ausführungs-Engine, dass dies dem Scannen aller Daten des gemeinsamen Index und des Clustered-Index entspricht, wenn Sie sagen: 🎜rrreee🎜, daher ist es besser, dies nicht zu tun Bei gemeinsamen Indizes kann die gesamte Tabelle direkt gescannt werden, sodass nur ein Primärschlüsselindex gescannt wird. 🎜🎜🎜Aber wenn es so aussieht: 🎜🎜rrreee🎜Dann weiß die Ausführungsmaschine, dass Sie zuerst den Indexbaum des gemeinsamen Index scannen und 10 Datenelemente erhalten und dann die 10 Datenelemente 10 Mal im durchsuchen Clustered-Index, dann wird weiterhin der gemeinsame Index verwendet. 🎜🎜2 Covering-Index🎜🎜Covered-Index ist kein Index, sondern eine Methode zur Abfrage basierend auf dem Index. Das heißt, für Dinge wie 🎜rrreee🎜, die nur die Werte einiger Felder im gemeinsamen Index benötigen, Dann müssen Sie nur den Index des gemeinsamen Indexbaums durchsuchen und müssen nicht zur Tabelle zurückkehren, um andere Felder zu finden. Wenn Sie also einen gemeinsamen Index verwenden, achten Sie darauf, ob dies zu einer großen Anzahl von Tabellenrückgaben an den Clustered-Index führen kann. Wenn die Anzahl der Rückgaben der Tabelle an den Clustered-Index zu hoch ist, kann dies der Fall sein Die gesamte Tabelle wurde direkt gescannt, ohne den Join zu verwenden.
Geben Sie möglichst nur die Felder an, die Sie in SQL benötigen, anstatt gewaltsam
select *
. Gehen Sie am besten direkt zum abdeckenden Index. Auch wenn es unvermeidlich ist, die Tabelle zurückzugeben, sollten Sie
limit
und where
verwenden, um die Anzahl der Tabellenrückgaben so weit wie möglich zu begrenzen und eine kleine Filterung vorzunehmen Anzahl der Daten aus dem gemeinsamen Index und dann zur Tabelle zurückkehren, damit die Leistung besser ist. 🎜Das obige ist der detaillierte Inhalt vonWie hoch ist der Leistungsverbrauch der MySQL-Tabellenrückgabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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











Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.

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

Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

Bei der Entwicklung einer kleinen Anwendung stieß ich auf ein kniffliges Problem: die Notwendigkeit, eine leichte Datenbankbetriebsbibliothek schnell zu integrieren. Nachdem ich mehrere Bibliotheken ausprobiert hatte, stellte ich fest, dass sie entweder zu viel Funktionalität haben oder nicht sehr kompatibel sind. Schließlich fand ich Minii/DB, eine vereinfachte Version basierend auf YII2, die mein Problem perfekt löste.

MySQL und PhpMyAdmin sind leistungsstarke Datenbankverwaltungs -Tools. 1) MySQL wird verwendet, um Datenbanken und Tabellen zu erstellen und DML- und SQL -Abfragen auszuführen. 2) PHPMYADMIN bietet eine intuitive Schnittstelle für Datenbankverwaltung, Tabellenstrukturverwaltung, Datenoperationen und Benutzerberechtigungsverwaltung.

Im Vergleich zu anderen Programmiersprachen wird MySQL hauptsächlich zum Speichern und Verwalten von Daten verwendet, während andere Sprachen wie Python, Java und C für die logische Verarbeitung und Anwendungsentwicklung verwendet werden. MySQL ist bekannt für seine hohe Leistung, Skalierbarkeit und plattformübergreifende Unterstützung, die für Datenverwaltungsanforderungen geeignet sind, während andere Sprachen in ihren jeweiligen Bereichen wie Datenanalysen, Unternehmensanwendungen und Systemprogramme Vorteile haben.

Artikelzusammenfassung: Dieser Artikel enthält detaillierte Schritt-für-Schritt-Anweisungen, um die Leser zu leiten, wie das Laravel-Framework einfach installiert werden kann. Laravel ist ein leistungsstarkes PHP -Framework, das den Entwicklungsprozess von Webanwendungen beschleunigt. Dieses Tutorial deckt den Installationsprozess von den Systemanforderungen bis zur Konfiguration von Datenbanken und das Einrichten von Routing ab. Durch die Ausführung dieser Schritte können die Leser schnell und effizient eine solide Grundlage für ihr Laravel -Projekt legen.

MySQL eignet sich für Webanwendungen und Content -Management -Systeme und ist beliebt für Open Source, hohe Leistung und Benutzerfreundlichkeit. 1) Im Vergleich zu Postgresql führt MySQL in einfachen Abfragen und hohen gleichzeitigen Lesevorgängen besser ab. 2) Im Vergleich zu Oracle ist MySQL aufgrund seiner Open Source und niedrigen Kosten bei kleinen und mittleren Unternehmen beliebter. 3) Im Vergleich zu Microsoft SQL Server eignet sich MySQL besser für plattformübergreifende Anwendungen. 4) Im Gegensatz zu MongoDB eignet sich MySQL besser für strukturierte Daten und Transaktionsverarbeitung.
