Dieser Fehler in den Suchresultaten einer xt:Commerce 3.04 SP 2.1 Installation hat mich jetzt einige Nerven geskostet. Auf der Suchergebnisseite prangt in etwa folgende SQL-Fehlermeldung:

1104 - The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay

SELECT distinct p.products_id, p.products_price, p.products_model, p.products_quantity, p.products_shippingtime, p.products_fsk18, p.products_image, p.products_weight, p.products_tax_class_id, pd.products_name, pd.products_short_description, pd.products_description FROM products AS p LEFT JOIN products_description AS pd ON (p.products_id = pd.products_id) LEFT OUTER JOIN specials AS s ON (p.products_id = s.products_id) AND s.status = '1' WHERE p.products_status = '1' AND pd.language_id = '2' AND ( ( pd.products_keywords LIKE ('%samsung%') OR pd.products_name LIKE ('%samsung%') OR p.products_model LIKE ('%samsung%') ) ) GROUP BY p.products_id ORDER BY p.products_id 

Die Lösung fand ich bei webshopshack.co.uk
Bei mir genügte es (wie im ersten Kommentar des Artikels beschrieben) die Tabelle specials mit einem Index zu versehen:

ALTER TABLE `specials` ADD UNIQUE `idx_s_products_id` ( `products_id` );

Weitere Lösungsvorschläge entnehme man obigem Post.
Hintergrund: das Problem tritt scheinbar bei einer zu großen Menge von Produkten und/oder Produktattributen und/oder Sonderangeboten auf. Die Anfrage benötigt bei nicht optimierter Tabellenstruktur einfach zu viel Speicher.

7 Antworten zu “xt:Commerce SQL-Fehler 1104 in advanced_search_result.php”

  1. Jan sagt:

    Indizes sind bei bei Datenbanken sowie so immer eine gute Idee! :)
    Vielleicht solltest du das bei xt:Commerce mal überprüfen. Vielleicht springt dabei ja auch ein interessanter Artikel für den Blog heraus… ;)

    Grüße
    Jan

  2. NiBa sagt:

    Der Legionär meldet sich zu Wort :)
    Oh ja, interessante Artikel. Viel wird derzeit nicht. Zwar bastle ich weiter an den xt:C Shops herum, AvatR soll aber nun auch vorran gehen.
    Aber du kennst das ja, auf SELECT * FROM gibts wohl auch eine Schaffenspause :)

  3. Jan sagt:

    Ja, eine etwas längerer bereits. Leider habe ich es nicht geschafft den Blog neu zu beleben, zumal da eine thematische Neuausrichtung notwendig wäre….

  4. Christian sagt:

    Hallo allerseits,

    habe das gleiche Problem wie iben beschrieben – leider funktioniert der genannte Link nicht mehr…

    Der Beitrag liegt zwar schon lange zurück – falls mir trotzdem jemand erklären könnte, wie man das Problem löst, wäre echt super!

    Liebe Grüße,

    Christian

  5. NiBa sagt:

    Hallo Christian. Habe den Link korrigiert, die Seite existiert noch! Hilft mein Code nicht weiter?

  6. Sascha sagt:

    Hallo,

    ich versuche gerade einem freund mit diesem problem weiterzuhelfen…
    leider fehlt mir einige kenntniss in diesem problem…

    wo genau muss ich was ändern???
    ich bitte euch herzlichst mir zu helfen…
    ich weiß einfach nicht weiter und appeliere an euch…
    bitte bitte, gebt mir einen tip damit der shop wieder läuft…

    vielen herzlichen dank im voraus…

    sascha

  7. NiBa sagt:

    Hallo Sascha,

    was genau bereitet Dir Probleme? Hast Du versucht, die Tabelle – wie beschrieben – mit einem Index zu versehen?

    Viele Grüße
    Niels

Eine Antwort schreiben