Heim Datenbank MySQL-Tutorial 理解Explain命令输出中的filesort

理解Explain命令输出中的filesort

Jun 07, 2016 pm 04:31 PM
explain filesort 命令 理解 输出

前段时间看了 mysqlperformance blog 上一篇关于 filesort 的文章 ,看到 Percona 公司在招聘面试的时候常问应聘者“Explain 命令输出中的 filesort 的含义是什么”这个问题,而且基本上都得不到正确的答案,甚感奇怪。 按理这是非常基础的内容了,既然敢于

前段时间看了 mysqlperformance blog 上一篇关于 filesort 的文章 ,看到 Percona 公司在招聘面试的时候常问应聘者“Explain 命令输出中的 filesort 的含义是什么”这个问题,而且基本上都得不到正确的答案,甚感奇怪。

按理这是非常基础的内容了,既然敢于去 Percona 这样高手如云的公司应聘,不应该不清楚这个问题吧。

所以我也试探性的问了 MySQL圈子 中的几位朋友这个问题,结果和 Percona 所遇到的情况基本一样,仅有 1/10 的朋友真正明白 filesort 的含义,而且给出的错误答案也都和 Percona应聘者的答案差不多:是 mysql 在进行排序的时候,临时表太大,超出 MySQL 限制,需要将数据写出到磁盘文件中进行排序,所以称之为filesort。

这个“貌似正确”的答案,大部分都是因为 “filesort” 这个词的字面含义所误导猜测出来的。看来并不仅仅只有中国人喜欢“望文生义”,老外也是一样嘛!

那 Explain 命令输出信息中的 filesort 到底是什么意思呢?其实很简单,就是告诉你 MySQL 需要进行实际的排序操作而不能通过索引获得已排序数据。

个人觉得上面的错误答案其实至少错了以下两点:

  • filesort(其实就是排序) 可不一定会产生临时表哦
  • filesort 与临时表数据写入磁盘是没有任何直接联系的

上面两点错误中第一点在 MySQL Performance Blog 的文章中也提到了。

实际上,在我之前的一篇文章 MySQL ORDER BY 的实现分析 中已经很清楚的分析了 MySQL 在进行排序的时候,只有当返回的数据和排序条件不在同一个表中的时候,才需要使用到临时表。

学技术,真的是要非常严谨才行,如果我们仅仅通过字面意思来猜想其含义,而不仔细阅读文档并分析实验,很多时候得到的答案可能都是错误的。

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
3 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)

So führen Sie SUDO-Befehle in Windows 11/10 aus So führen Sie SUDO-Befehle in Windows 11/10 aus Mar 09, 2024 am 09:50 AM

Mit dem Befehl sudo können Benutzer Befehle im Modus mit erhöhten Rechten ausführen, ohne in den Superuser-Modus wechseln zu müssen. In diesem Artikel erfahren Sie, wie Sie Funktionen simulieren, die Sudo-Befehlen in Windows-Systemen ähneln. Was ist das Shudao-Kommando? Sudo (kurz für „Superuser Do“) ist ein Befehlszeilentool, das es Benutzern von Unix-basierten Betriebssystemen wie Linux und MacOS ermöglicht, Befehle mit erhöhten Rechten auszuführen, die normalerweise Administratoren vorbehalten sind. Ausführen von SUDO-Befehlen in Windows 11/10 Mit der Veröffentlichung der neuesten Vorschauversion von Windows 11 Insider können Windows-Benutzer diese Funktion nun nutzen. Mit dieser neuen Funktion können Benutzer Folgendes tun

Wie überprüfe ich die MAC-Adresse der Netzwerkkarte in Win11? Wie erhalte ich mit dem Befehl die MAC-Adresse der Netzwerkkarte in Win11? Wie überprüfe ich die MAC-Adresse der Netzwerkkarte in Win11? Wie erhalte ich mit dem Befehl die MAC-Adresse der Netzwerkkarte in Win11? Feb 29, 2024 pm 04:34 PM

Dieser Artikel führt Leser in die Verwendung der Eingabeaufforderung (CommandPrompt) ein, um die physische Adresse (MAC-Adresse) des Netzwerkadapters im Win11-System zu finden. Eine MAC-Adresse ist eine eindeutige Kennung für eine Netzwerkschnittstellenkarte (NIC), die eine wichtige Rolle bei der Netzwerkkommunikation spielt. Über die Eingabeaufforderung können Benutzer problemlos die MAC-Adressinformationen aller Netzwerkadapter auf dem aktuellen Computer abrufen, was für die Fehlerbehebung im Netzwerk, die Konfiguration von Netzwerkeinstellungen und andere Aufgaben sehr hilfreich ist. Methode 1: „Eingabeaufforderung“ verwenden 1. Drücken Sie die Tastenkombination [Win+X] oder klicken Sie mit der rechten Maustaste auf das [Windows-Logo] in der Taskleiste und wählen Sie im sich öffnenden Menüelement [Ausführen] aus . Führen Sie das Fenster aus, geben Sie den Befehl [cmd] ein und dann

Wo ist der erweiterte Hyper-V-Sitzungsmodus? Tipps zum Aktivieren oder Deaktivieren des erweiterten Hyper-V-Sitzungsmodus mithilfe von Befehlen in Win11 Wo ist der erweiterte Hyper-V-Sitzungsmodus? Tipps zum Aktivieren oder Deaktivieren des erweiterten Hyper-V-Sitzungsmodus mithilfe von Befehlen in Win11 Feb 29, 2024 pm 05:52 PM

Im Win11-System können Sie den erweiterten Hyper-V-Sitzungsmodus über Befehle aktivieren oder deaktivieren. In diesem Artikel wird die Verwendung von Befehlen zur Bedienung vorgestellt und Benutzern dabei geholfen, Hyper-V-Funktionen im System besser zu verwalten und zu steuern. Hyper-V ist eine von Microsoft bereitgestellte Virtualisierungstechnologie, die in Windows Server und Windows 10 und 11 (außer Home Edition) integriert ist und es Benutzern ermöglicht, virtuelle Betriebssysteme in Windows-Systemen auszuführen. Obwohl virtuelle Maschinen vom Host-Betriebssystem isoliert sind, können sie über Einstellungen dennoch die Ressourcen des Hosts wie Soundkarten und Speichergeräte nutzen. Eine der wichtigsten Einstellungen ist die Aktivierung des erweiterten Sitzungsmodus. Der erweiterte Sitzungsmodus ist Hyper

Super praktisch! Sar-Befehle, die Sie zum Linux-Meister machen Super praktisch! Sar-Befehle, die Sie zum Linux-Meister machen Mar 01, 2024 am 08:01 AM

1. Übersicht Der Befehl sar zeigt Systemnutzungsberichte anhand von Daten an, die aus Systemaktivitäten gesammelt wurden. Diese Berichte bestehen aus verschiedenen Abschnitten, die jeweils die Art der Daten und den Zeitpunkt der Datenerfassung enthalten. Der Standardmodus des Befehls sar zeigt die CPU-Auslastung in verschiedenen Zeitschritten für verschiedene Ressourcen an, die auf die CPU zugreifen (z. B. Benutzer, Systeme, E/A-Planer usw.). Darüber hinaus wird der Prozentsatz der inaktiven CPU für einen bestimmten Zeitraum angezeigt. Der Durchschnittswert für jeden Datenpunkt wird unten im Bericht aufgeführt. Standardmäßig erfasst sar alle 10 Minuten Daten. Sie können diese Berichte jedoch mithilfe verschiedener Optionen filtern und anpassen. Ähnlich wie der Befehl uptime kann Ihnen auch der Befehl sar dabei helfen, die CPU-Auslastung zu überwachen. Durch sar können Sie das Auftreten einer übermäßigen Belastung verstehen

Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Mar 15, 2024 am 09:09 AM

Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Wenn wir ein Linux-System verwenden, stoßen wir häufig auf Situationen, in denen wir einen bestimmten Dienst neu starten müssen, aber manchmal können beim Neustart des Dienstes Probleme auftreten, z. B. wenn der Dienst nicht tatsächlich gestoppt oder gestartet wird. Daher ist es sehr wichtig, die richtige Methode zum Neustarten von Diensten zu beherrschen. Unter Linux können Sie normalerweise den Befehl systemctl verwenden, um Systemdienste zu verwalten. Der Befehl systemctl ist Teil des systemd-Systemmanagers

So verwenden Sie LSOF zur Überwachung von Ports in Echtzeit So verwenden Sie LSOF zur Überwachung von Ports in Echtzeit Mar 20, 2024 pm 02:07 PM

LSOF (ListOpenFiles) ist ein Befehlszeilentool, das hauptsächlich zur Überwachung von Systemressourcen ähnlich wie bei Linux/Unix-Betriebssystemen verwendet wird. Über den LSOF-Befehl können Benutzer detaillierte Informationen über die aktiven Dateien im System und die Prozesse erhalten, die auf diese Dateien zugreifen. LSOF kann Benutzern helfen, die Prozesse zu identifizieren, die derzeit Dateiressourcen belegen, wodurch Systemressourcen besser verwaltet und mögliche Probleme behoben werden können. LSOF ist leistungsstark und flexibel und kann Systemadministratoren dabei helfen, dateibezogene Probleme wie Dateilecks, nicht geschlossene Dateideskriptoren usw. schnell zu lokalisieren. Über den LSOF-Befehl Das LSOF-Befehlszeilentool ermöglicht Systemadministratoren und Entwicklern Folgendes: Im Falle eines Portkonflikts festzustellen, welche Prozesse derzeit eine bestimmte Datei oder einen bestimmten Port verwenden

Detaillierte Erläuterung des Linux-Befehls ldconfig Detaillierte Erläuterung des Linux-Befehls ldconfig Mar 14, 2024 pm 12:18 PM

Detaillierte Erläuterung des Linuxldconfig-Befehls 1. Übersicht Im Linux-System ist ldconfig ein Befehl zum Konfigurieren gemeinsam genutzter Bibliotheken. Es wird verwendet, um die Links und den Cache von gemeinsam genutzten Bibliotheken zu aktualisieren und es dem System zu ermöglichen, dynamisch verknüpfte gemeinsam genutzte Bibliotheken korrekt zu laden. Die Hauptfunktion von ldconfig besteht darin, dynamische Linkbibliotheken zu finden und symbolische Links für die Programmverwendung zu erstellen. Dieser Artikel befasst sich mit der Verwendung und dem Funktionsprinzip des Befehls ldconfig und verwendet spezifische Codebeispiele, um den Lesern ein besseres Verständnis der Funktionen von ldconfig zu ermöglichen

Wie lösche ich Win11-Widgets? Ein Befehl zum Deinstallieren von Windows 11-Widgets – Funktionstipps Wie lösche ich Win11-Widgets? Ein Befehl zum Deinstallieren von Windows 11-Widgets – Funktionstipps Apr 11, 2024 pm 05:19 PM

Widgets sind eine neue Funktion des Win11-Systems. Es ist jedoch unvermeidlich, dass einige Benutzer Widgets nicht häufig verwenden, weil sie Speicherplatz beanspruchen. Der untenstehende Editor zeigt Ihnen die Bedienung und Sie können es ausprobieren. Was sind Widgets? Widgets sind kleine Karten, die dynamische Inhalte Ihrer bevorzugten Apps und Dienste auf Ihrem Windows-Desktop anzeigen. Sie werden auf dem Widget-Board angezeigt, wo Sie Widgets entdecken, anheften, lösen, anordnen, in der Größe ändern und an Ihre Interessen anpassen können. Das Widget-Board ist für die Anzeige relevanter Widgets und personalisierter Inhalte basierend auf der Nutzung optimiert. Öffnen Sie das Widget-Panel in der linken Ecke der Taskleiste, wo Sie das Live-Wetter sehen können

See all articles