Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie behebe ich den Fehler „Der SELECT würde mehr als MAX_JOIN_SIZE Zeilen untersuchen' in MySQL?

DDD
Freigeben: 2024-10-23 18:21:27
Original
341 Leute haben es durchsucht

How to Resolve

MySQL: Behebung des Fehlers „Das SELECT würde mehr als MAX_JOIN_SIZE Zeilen untersuchen“

In MySQL wird die Fehlermeldung „Das SELECT würde mehr untersuchen“ angezeigt als MAX_JOIN_SIZE Zeilen“ zeigt an, dass eine SELECT-Abfrage schätzt, dass eine Anzahl von Zeilen in einem Join untersucht werden soll, die größer ist als die von der Systemvariablen MAX_JOIN_SIZE maximal zulässige Größe. Dieser Fehler tritt normalerweise auf, wenn mit großen Datensätzen oder komplexen Verknüpfungsvorgängen gearbeitet wird.

Um dieses Problem zu beheben, können Sie Ihre SQL-Abfrage mithilfe der folgenden Techniken optimieren:

  • Set SQL_BIG_SELECTS=1: Setzen Sie für PHP-Benutzer das Flag SQL_BIG_SELECTS=1, bevor Sie die Hauptabfrage ausführen. Dadurch kann MySQL größere Join-Größen verarbeiten.
  • MAX_JOIN_SIZE erhöhen: Wenn die Abfrage immer noch die maximale Größe überschreitet, erhöhen Sie den Wert der Variablen MAX_JOIN_SIZE. Sie können dies dynamisch in Ihrer SQL-Anweisung tun, indem Sie die Syntax SET SQL_MAX_JOIN_SIZE=# verwenden.
  • WHERE-Klausel optimieren: Stellen Sie sicher, dass Ihre WHERE-Klausel unerwünschte Zeilen effektiv herausfiltert und dass die Join-Bedingungen erfüllt sind spezifisch.
  • Indizierte Joins verwenden: Erstellen Sie Indizes für die in Join-Bedingungen verwendeten Spalten, um die Abfrageleistung zu verbessern.

Beispiel mit PHP:

<code class="php">$mysqli = new mysqli("localhost", "root", "password", "db");

$mysqli->query("SET SQL_BIG_SELECTS=1");  // Set it before the main query

$results = $mysqli->query("SELECT a, b, c FROM test");
while ($row = $results->fetch_assoc()) {
    echo '<pre class="brush:php;toolbar:false">';
    print_r($row);
    echo '
'; }
Nach dem Login kopieren

Denken Sie daran, den Host, den Benutzernamen, das Passwort und den Datenbanknamen an Ihre spezifische Umgebung anzupassen.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Der SELECT würde mehr als MAX_JOIN_SIZE Zeilen untersuchen' in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!