Matlock Posted October 2, 2007 Report Share Posted October 2, 2007 Hallo allerseits! Ich beschäftige mich nun schon seit mehr als einem Jahr intensiv mit XTC und konnte schon so einige sehr ausgefallene Wünsche meines Chefs erfüllen. Nun steh ich leider ein wenig an und hoffe daher dass jemand eine zündende Idee parat hat. Zum Problem: Die Suche von XTC ist leider alles andere als flott unterwegs. (am Server liegts nicht, da dies ein Managed Server ist mit ausreichend Performance). Der Hund liegt in der SQL Abfrage in der advanced_search_results.php. Mit der Standard Anweisung dauert ein Suchvorgang ca. 10 Sekunden, was leider eindeutig zu lang ist. Dadurch gehen leider Kunden flötten. Der Grund dafür scheint wohl, dass mein Shop ca. 500 verschiedene Attribute benutzt (geht leider nicht weniger) bei ca. 1400 Produkten. Hier der Auszug aus der advanced_search_results.php, welchen wohl einige kennen werden: $from_str = "FROM " . TABLE_PRODUCTS . " AS p LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " AS pd ON (p.products_id = pd.products_id) " . $subcat_join . " LEFT OUTER JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " AS pa ON (p.products_id = pa.products_id) LEFT OUTER JOIN " . TABLE_PRODUCTS_OPTIONS_VALUES . " AS pov ON (pa.options_values_id = pov.products_options_values_id) LEFT OUTER JOIN " . TABLE_SPECIALS . " AS s ON (p.products_id = s.products_id) AND s.status = '1'"; Nun habe ich die Suche nur auf das notwendigste begrenzt und zwar so: $from_str = "FROM " . TABLE_PRODUCTS . " AS p LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " AS pd ON (p.products_id = pd.products_id)"; Resultat ist eine Suche < 1 Sekunde. So soll es auch sein. Problem ist nun leider, dass die Kunden nicht mehr nach Artikelnummern (die in den products_attributes) und Farben, Größen, etc. suchen können. Da dies aber jede Shopsuche können sollte und auch einen Serviceaspekt hat, würde ich gerne dies wieder verwenden können, aber eine Suchdauer von 10 Sek. ist einfach zu lang. Nun bin ich leider nicht der SQL Guru (die JOIN Anweisungen verschließen sich mir noch), sodass ich hoffe jemand kann mir hier einen Lösungsweg (falls überhaupt per SQL möglich) aufzeigen. Herzlichen Dank im voraus!!! Link to comment Share on other sites More sharing options...
buero-design Posted October 2, 2007 Report Share Posted October 2, 2007 Hi matlock, in erster Linie hängt es doch davon ab, was Deine Kunden suchen. Wenn Du - wie in Deinem Beispiel - die Abfrage verkürzt fehlen Teilergebnisse. Klar. Bei Deiner Version der Preis. Schau doch mal, die Suche vielleicht aufzuteilen. Hat in erster Linie nix mit SQL zu tun sondern mit gesundem Verstand. Suche nach Text: products_description, products_option_values Suche nach Preisen / Artikelnummer: products, products_attributes Danach dann schrittweise verfeinern... Die JOIN Sntax findest Du überigens hier erklärt: http://dev.mysql.com/doc/refman/4.1/en/index.html Ben Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.