xt:Commerce SQL-Fehler 1104 in advanced_search_result.php

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 grossen Menge von Produkten und/oder Produktattributen und/oder Sonderangeboten auf. Die Anfrage benötigt bei nicht optimierter Tabellenstruktur einfach zuviel Speicher.

3 Antworten to “xt:Commerce SQL-Fehler 1104 in advanced_search_result.php”

  1. 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. 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. 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….

Kommentieren

Currently you have JavaScript disabled. In order to post comments, please make sure JavaScript and Cookies are enabled, and reload the page.

Folgende XHTML Elemente können verwendet werden: : <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>