Heim Datenbank MySQL-Tutorial 复合索引的列顺序判断

复合索引的列顺序判断

Jun 07, 2016 pm 03:55 PM
判断 索引 Befehl

复合索引最令人困惑的当属索引列的顺序,不仅依赖于使用该索引的查询,更需考虑排序和分组。前段时候我发了个帖子:where条件顺序和复合索引字段顺序。感兴趣的朋友不妨参与讨论。今天我提个自己的观点。在应用开发阶段,【选择性】是我们首要考虑因素,请看

复合索引最令人困惑的当属索引列的顺序,不仅依赖于使用该索引的查询,更需考虑排序和分组。前段时候我发了个帖子:where条件顺序和复合索引字段顺序。感兴趣的朋友不妨参与讨论。今天我提个自己的观点。在应用开发阶段,【选择性】是我们首要考虑因素,请看简图:\
当出现sql性能问题时,你可能需要注意以下几个:1. 随机IO2. 排序(order by)3. 分组(group by or distinct)这时不必也不应该在关注【选择性】我的经验便是,在你手上已经有Top N SQL时,我们应该优先考虑【值的分布】,而不是选择性。
那么该如何判断【值的分布】,我们通过一种被geek称之为 【sarg】的方法,具体操作如下:假如,我们有如下query:
select * from userresult_f where askid=800808 and uid=110996854;
Nach dem Login kopieren

则有2个索引可供选择:1. idx_1 (askid,uid)2. idx_2 (uid,askid)是1 还是2 ?利用【sarg】方法:
mysql> select sum(askid=800808),sum(uid=110996854) from userresult_f\G;
*************************** 1. row ***************************
sum(askid=800808): 6
sum(uid=110996854): 2
1 row in set (0.00 sec)
Nach dem Login kopieren

依据查询输出,我们应该选择 idx_2
By 数据牧羊人Good Luck!2014-4-27 19:05 于福州


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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

PHP-E-Mail-Erkennung: Stellen Sie fest, ob die E-Mail erfolgreich gesendet wurde. PHP-E-Mail-Erkennung: Stellen Sie fest, ob die E-Mail erfolgreich gesendet wurde. Sep 19, 2023 am 09:16 AM

PHP-E-Mail-Erkennung: Stellen Sie fest, ob die E-Mail erfolgreich gesendet wurde. Bei der Entwicklung von Webanwendungen müssen Sie häufig E-Mails senden, um mit Benutzern zu kommunizieren. Ob es sich um Registrierungsbestätigungen, das Zurücksetzen von Passwörtern oder das Versenden von Benachrichtigungen handelt, die E-Mail-Funktion ist ein unverzichtbarer Bestandteil. Manchmal können wir jedoch nicht sicherstellen, dass die E-Mail tatsächlich erfolgreich gesendet wurde. Daher müssen wir eine E-Mail-Erkennung durchführen und feststellen, ob die E-Mail erfolgreich gesendet wurde. In diesem Artikel wird erläutert, wie Sie PHP zum Implementieren dieser Funktion verwenden. 1. Verwenden Sie den SMTP-Server zum Senden von E-Mails. Zuerst müssen wir SM verwenden

Was sind die Oracle-Indextypen? Was sind die Oracle-Indextypen? Nov 16, 2023 am 09:59 AM

Oracle-Indextypen umfassen: 1. B-Tree-Index; 3. Funktionsindex; Bitmap-Verbindungsindex; 10. Zusammengesetzter Index. Detaillierte Einführung: 1. Der B-Tree-Index ist eine selbstausgleichende Baumdatenstruktur, die gleichzeitige Vorgänge effizient unterstützen kann. In der Oracle-Datenbank ist der B-Tree-Index der am häufigsten verwendete Indextyp zum Bitmap-Algorithmus und so weiter.

Wie kann in der Go-Sprache festgestellt werden, ob ein Datum der Vortag ist? Wie kann in der Go-Sprache festgestellt werden, ob ein Datum der Vortag ist? Mar 24, 2024 am 10:09 AM

Frage: Wie kann in der Go-Sprache festgestellt werden, ob das Datum der Vortag ist? In der täglichen Entwicklung stoßen wir häufig auf Situationen, in denen wir feststellen müssen, ob das Datum der Vortag ist. In der Go-Sprache können wir diese Funktion durch Zeitberechnung implementieren. Das Folgende wird mit spezifischen Codebeispielen kombiniert, um zu demonstrieren, wie man in der Go-Sprache ermittelt, ob das Datum der Vortag ist. Zuerst müssen wir das Zeitpaket in der Go-Sprache importieren. Der Code lautet wie folgt: import("time") Dann definieren wir eine Funktion IsYest

jQuery-Nutzungspraxis: Mehrere Möglichkeiten, um festzustellen, ob eine Variable leer ist jQuery-Nutzungspraxis: Mehrere Möglichkeiten, um festzustellen, ob eine Variable leer ist Feb 27, 2024 pm 04:12 PM

jQuery ist eine in der Webentwicklung weit verbreitete JavaScript-Bibliothek, die viele einfache und praktische Methoden zur Bedienung von Webseitenelementen und zur Verarbeitung von Ereignissen bietet. In der tatsächlichen Entwicklung stoßen wir häufig auf Situationen, in denen wir feststellen müssen, ob eine Variable leer ist. In diesem Artikel werden mehrere gängige Methoden zur Verwendung von jQuery vorgestellt, um festzustellen, ob eine Variable leer ist, und um spezifische Codebeispiele anzuhängen. Methode 1: Verwenden Sie die if-Anweisung, um varstr="";if(str){co

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Feb 29, 2024 am 09:03 AM

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wenn Sie jQuery zum Betreiben von DOM-Elementen verwenden, stoßen Sie häufig auf Situationen, in denen Sie feststellen müssen, ob ein Element ein bestimmtes Attribut hat. In diesem Fall können wir diese Funktion einfach mit Hilfe der von jQuery bereitgestellten Methoden implementieren. Im Folgenden werden zwei häufig verwendete Methoden vorgestellt, um festzustellen, ob ein jQuery-Element über bestimmte Attribute verfügt, und um spezifische Codebeispiele anzuhängen. Methode 1: Verwenden Sie die Methode attr() und den Operator typeof //, um zu bestimmen, ob das Element ein bestimmtes Attribut hat

So lösen Sie das Problem, dass der Index das Array-Limit überschreitet So lösen Sie das Problem, dass der Index das Array-Limit überschreitet Nov 15, 2023 pm 05:22 PM

Die Lösungen sind: 1. Überprüfen Sie, ob der Indexwert korrekt ist: Überprüfen Sie zunächst, ob Ihr Indexwert den Längenbereich des Arrays überschreitet. Der Index des Arrays beginnt bei 0, daher sollte der maximale Indexwert die Array-Länge minus 1 sein. Überprüfen Sie die Schleifenrandbedingungen: Wenn Sie Indizes für den Array-Zugriff in einer Schleife verwenden, stellen Sie sicher, dass die Schleifenrandbedingungen korrekt sind; 3. Initialisieren Sie das Array: Stellen Sie vor der Verwendung eines Arrays sicher, dass das Array korrekt initialisiert wurde. 4. Verwenden Sie die Ausnahmebehandlung: Sie können den Ausnahmebehandlungsmechanismus im Programm verwenden, um Fehler abzufangen, bei denen der Index die Grenzen des Arrays überschreitet. und entsprechend damit umgehen.

Wie kann die Effizienz der Datengruppierung und Datenaggregation in PHP und MySQL durch Indizes verbessert werden? Wie kann die Effizienz der Datengruppierung und Datenaggregation in PHP und MySQL durch Indizes verbessert werden? Oct 15, 2023 am 11:39 AM

Wie kann die Effizienz der Datengruppierung und Datenaggregation in PHP und MySQL durch Indizes verbessert werden? Einführung: PHP und MySQL sind derzeit die am weitesten verbreiteten Programmiersprachen und Datenbankverwaltungssysteme und werden häufig zum Erstellen von Webanwendungen und zum Verarbeiten großer Datenmengen verwendet. Datengruppierung und Datenaggregation sind häufige Vorgänge bei der Verarbeitung großer Datenmengen. Wenn Indizes jedoch nicht ordnungsgemäß entworfen und verwendet werden, können diese Vorgänge sehr ineffizient werden. In diesem Artikel wird erläutert, wie Sie mithilfe von Indizes die Effizienz der Datengruppierung und Datenaggregation in PHP und MySQL verbessern und verbessern

Wenn in einem C++-Programm das Entfernen von Bits zulässig ist, bestimmen Sie, ob eine Zahl durch 64 teilbar ist. Wenn in einem C++-Programm das Entfernen von Bits zulässig ist, bestimmen Sie, ob eine Zahl durch 64 teilbar ist. Sep 01, 2023 pm 08:17 PM

In diesem Tutorial schreiben wir ein Programm, das prüft, ob eine gegebene Binärzahl durch 64 teilbar ist. Wir erhalten eine Binärzahl und können einige Bits entfernen, um sie durch 64 teilbar zu machen. Wenn die Zahl nach dem Entfernen der Bits durch 64 teilbar ist, geben Sie „Ja“ aus, andernfalls geben Sie „Nein“ aus. Die Methode, die wir verwenden werden, ist sehr einfach. Schauen wir uns die Schritte zur Lösung des Problems an. Initialisieren Sie eine Binärzahl im String-Format. Iteriere über die angegebenen Binärzahlen. Zählen Sie die Anzahl der Nullen. Enthält eine Binärzahl mehr als oder gleich 6 Nullbits, ist die Zahl durch 64 teilbar. Gibt aus, ob die angegebene Binärzahl durch 64 teilbar ist. Beispiel Schauen wir uns den Code an. #include<bits/stdc++.h>usi

See all articles