MySQL优化器中一个Count和覆盖索引的问题_MySQL
bitsCN.com
MySQL优化器中一个Count和覆盖索引的问题
现象说明
其实这里主要要说明的是一个优化器还需要改进的地方。
优化器会根据where条件和select_list里面的字段决定在使用一个索引(sta)后,是否需要回表—回到聚集索引取数据。
基本的做法是:在确定了一个索引后,将select_list和where中出现的所有字段都拿来判断一下,如果字段都存在于sta索引中,则可以使用覆盖索引。
第一个explan可以用上覆盖索引(Using Index), 是因为select_list里面只有count(*),而count(*)在语法解析阶段就被特殊处理,不作为特殊字段。
第二个字段在现在的实现中,因为gmt不是sta索引的一部分(sta索引定义上只有sta一个字段,算上聚集索引结构,就是sta,auci)。所以最后判定为不能使用覆盖索引。
性能差别
表中放入500w数据以后,这两个查询的时间相差25倍(0.19s vs 5s)。
存在改进
其实我说这个“不科学”,是因为第二个语句居然不能使用覆盖索引。按照count(gmt)的语义,是计算gmt不为NULL的所有行的数目。但是表定义中,分分明已经说明了gmt为not null。那么就可以转成count(*)了!
目前因为count、sum、count(distinct)这些操作的处理方法被揉在一起,因此没有特别分开。
应用警惕
好在按照正常的习惯,需要计算总数时,最多是count(auci)或者count(*), 不会故意去count一个别的字段。当时若使用的是MyISAM,就需要小心了。
从上面的分析可以推测得到,如果这是个MyISAM表,还是一样的where条件,count(*)是可以使用覆盖索引的,但是count(auci)就不行了。

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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



Praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Während der Entwicklung des Laravel-Frameworks stellen Sammlungen eine sehr nützliche Datenstruktur dar, die umfangreiche Methoden zur Datenbearbeitung bereitstellt. Unter diesen ist die Where-Methode eine häufig verwendete Filtermethode, mit der Elemente in einer Sammlung basierend auf bestimmten Bedingungen gefiltert werden können. In diesem Artikel wird die Verwendung der Where-Methode in Laravel-Sammlungen vorgestellt und ihre Verwendung anhand spezifischer Codebeispiele demonstriert. 1. Grundlegende Verwendung der Where-Methode

So verwenden Sie die Where-Methode in der Laravel-Sammlung: Laravel ist ein beliebtes PHP-Framework, das eine Fülle von Funktionen und Tools bereitstellt, um Entwicklern die schnelle Erstellung von Anwendungen zu erleichtern. Unter anderem ist Collection eine sehr praktische und leistungsstarke Datenstruktur in Laravel. Entwickler können Sammlungen verwenden, um verschiedene Vorgänge an Daten durchzuführen, wie z. B. Filtern, Zuordnen, Sortieren usw. In Sammlungen ist die Where-Methode eine häufig verwendete Methode zum Filtern der Sammlung basierend auf angegebenen Bedingungen.

Vom Anfänger bis zum Experten: Beherrschen Sie die Fähigkeiten im Umgang mit Is- und Where-Selektoren. Einführung: Im Prozess der Datenverarbeitung und -analyse ist der Selektor ein sehr wichtiges Werkzeug. Durch Selektoren können wir die erforderlichen Daten entsprechend bestimmten Bedingungen aus dem Datensatz extrahieren. In diesem Artikel werden die Verwendungsfähigkeiten von is- und where-Selektoren vorgestellt, um den Lesern zu helfen, die leistungsstarken Funktionen dieser beiden Selektoren schnell zu beherrschen. 1. Verwendung des is-Selektors Der is-Selektor ist ein grundlegender Selektor, der es uns ermöglicht, den Datensatz basierend auf gegebenen Bedingungen auszuwählen.

Vorwort Wenn wir SQL-Anweisungen schreiben, können wir die Verwendung von Verbindungsschlüsselwörtern wie innere Verbindungen und äußere Verbindungen nicht vermeiden. Ich werde hier ein Bild veröffentlichen, das ich an anderer Stelle gefunden habe. Es zeigt die gängigen Linktypen in diesem Artikel als Beispiel. Das Schlüsselwort LEFTJOIN gibt alle Zeilen aus der linken Tabelle zurück, auch wenn es in der rechten Tabelle keine passenden Zeilen gibt. Tatsächlich ist Leftjoin im wahrsten Sinne des Wortes leichter zu verstehen, aber es gibt immer noch einige Probleme bei der Verwendung. Wenn die Bedingung beispielsweise nach „on“ und „nach wo“ lautet, sind ihre Ergebnisse völlig unterschiedlich

Laravel ist ein beliebtes PHP-Entwicklungsframework, das umfangreiche und praktische Funktionen bietet. Die Sammlung ist eine der sehr wichtigen Datenstrukturen in Laravel. Die Collection-Klasse bietet viele leistungsstarke Methoden, darunter die Where-Methode. In diesem Artikel werden spezifische Codebeispiele verwendet, um die Verwendung der where-Methode in Laravel-Sammlungen zu analysieren. 1. Erstellen Sie eine Sammlung. Zuerst müssen wir eine Sammlung erstellen, die einige Daten enthält. Kann

Laravel ist ein beliebtes PHP-Framework und seine Collections-Klasse bietet leistungsstarke Datenverarbeitungsfunktionen. Unter diesen ist die Where-Methode eine der am häufigsten verwendeten Methoden in Sammlungsklassen und wird zum Filtern von Daten verwendet, die Bedingungen erfüllen. In diesem Artikel wird die Where-Methode der Laravel-Sammlung ausführlich vorgestellt, einschließlich Verwendungsmethoden, Parameterbedeutungen und spezifischer Codebeispiele. 1. Überblick über die Where-Methode Die Where-Methode wird verwendet, um Elemente in der Sammlung zu filtern, die bestimmte Bedingungen erfüllen und a zurückgeben

SQLWHERE-Klausel Die WHERE-Klausel wird zur Angabe der Auswahlkriterien verwendet. Um Daten aus einer Tabelle bedingt auszuwählen, fügen Sie der SELECT-Anweisung eine WHERE-Klausel hinzu. Die Syntax lautet wie folgt: SELECT Spaltenname FROM Tabellenname WHERE Spaltenoperatorwert Die folgenden Operatoren können in der WHERE-Klausel verwendet werden: =: gleich: ungleich >: größer als =: größer oder gleich 1965

Häufige Fehler und Lösungen für die Where-Methode in Laravel. Bei der Entwicklung mit dem Laravel-Framework verwenden wir häufig EloquentORM, um die Datenbank zu betreiben. Unter diesen ist die Where-Methode eine sehr häufig verwendete Methode zum Filtern von Daten in der Datenbank. Aufgrund mangelnder Vertrautheit mit dem Laravel-Framework oder mangelndem tiefem Verständnis von EloquentORM können bei der Verwendung der where-Methode jedoch leicht einige häufige Fehler gemacht werden. In diesem Artikel werden einige gängige W vorgestellt
