Performance Optimierung des Shops

Hallo, ich habe aktuell von meinem Provider die Meldung, das unser neuer Shop (4.0.5) zu viele Ressurcen benötigt. Der Shop ist aktuell noch im Aufbau und liegt noch auf einer unbekannten URL. Also sind noch keine Kunden unterwegs… Kann mir jemand helfen, bzw. tipps geben mit welchen Einstellungen ich die Performance erhöhe? Hab natürlich das Forum schon durchsucht. Unser shop is nicht besonders komplex. Ca. 500 Artikel mit Varianten verteilt auf 3 Unershops. Folgende art von Query fürt wolh zu dem Problem: 76928 web620 localhost usr_web620_1 Query 607 statistics SELECT\n\t\t\t\tfv.optionID AS id,\n\t\t\t\tCOUNT(DISTINCT a.id) AS count,\n\t\t\t\tfo.id AS optionID,\n\t\t\t\tfo.name AS optionName,\n\t\t\t\tf.id AS groupID,\n\t\t\t\tf.name AS groupName,\n\t\t\t\tfv.value AS optionValue,\n\t\t\t\tfv.id AS valueID,\n\t\t\t\tst.objectdata AS optionNameTranslation,\n\t\t\t\tst2.objectdata AS groupNameTranslation,\n\t\t\t\tst3.objectdata AS valueTranslation\n\t\t\tFROM s_categories c, s_categories c2, s_articles_categories ac\n\n\t\t\tJOIN s_filter_articles fa\n\t\t\tON fa.articleID=ac.articleID\n\n\t\t JOIN s_filter_values fv\n\t\t ON fv.id=fa.valueID\n\n\t\t JOIN s_filter_options fo\n\t\t ON fo.id=fv.optionID\n\t\t AND fo.filterable = 1\n\n\t\t JOIN s_articles a\n\t\t ON a.id=ac.articleID\n\t\t AND a.active =1\n\t\t\tAND a.changetime <= NOW()\n\n\t\t\tJOIN s_filter f\n\t\t\tON f.id=a.filtergroupID\n\n\t\t\tLEFT JOIN s_filter_relations fr\n\t\t\tON f.id = fr.groupId AND fo.id = fr.optionId\n\n\t\t\tLEFT JOIN s_articles_avoid_customergroups ag\n ON ag.articleID=fa.articleID\n AND ag.customergroupID=1\n\n\t\t\tLEFT JOIN s_core_translations AS st\n\t\t\tON st.objecttype=‘propertyoption’\n\t\t\tAND st.objectkey=fv.optionID\n\t\t\tAND st.objectlanguage=’’\n\n\t\t\tLEFT JOIN s_core_translations AS st2\n\t\t\tON st2.objecttype=‘propertygroup’\n\t\t\tAND st2.objectkey=f.id\n\t\t\tAND st2.objectlanguage=’’\n\n\t\t\tLEFT JOIN s_core_translations AS st3\n ON st3.objecttype=‘propertyvalue’\n AND st3.objectkey=fv.id\n AND st3.objectlanguage=’’\n\n\t\t\t\n INNER JOIN s_filter_articles fv105\n ON fv105.articleID = a.id\n AND fv105.valueID = 105\n \n INNER JOIN s_filter_articles fv123\n ON fv123.articleID = a.id\n AND fv123.valueID = 123\n \n INNER JOIN s_filter_articles fv149\n ON fv149.articleID = a.id\n AND fv149.valueID = 149\n \n INNER JOIN s_filter_articles fv49\n ON fv49.articleID = a.id\n AND fv49.valueID = 49\n \n INNER JOIN s_filter_articles fv17\n ON fv17.articleID = a.id\n AND fv17.valueID = 17\n \n INNER JOIN s_filter_articles fv142\n ON fv142.articleID = a.id\n AND fv142.valueID = 142\n \n INNER JOIN s_filter_articles fv181\n ON fv181.articleID = a.id\n AND fv181.valueID = 181\n \n INNER JOIN s_filter_articles fv144\n ON fv144.articleID = a.id\n AND fv144.valueID = 144\n \n INNER JOIN s_filter_articles fv137\n ON fv137.articleID = a.id\n AND fv137.valueID = 137\n \n\n\t\t\tWHERE c.id=1\n AND c2.active=1\n\t AND c2.left >= c.left\n\t AND c2.right <= c.right\n\t AND ac.articleID=a.id\n\t AND ac.categoryID=c2.id\n\t AND ag.articleID IS NULL\n\n\t\t\t\n\n\t\t\tGROUP BY fv.id\n\t\t\tORDER BY\n\t\t\t fr.position,\n\t\t\t fo.name ASC,\n\t\t\t IF(f.sortmode=1, TRIM(REPLACE(fv.value,’,’,’.’))+0, 0),\n\t\t\t IF(f.sortmode=2, COUNT(*) , 0) DESC,\n\t\t\t IF(f.sortmode=3, fv.position, 0),\n\t\t\t fv.value 79348 web620 localhost usr_web620_1 Query 57 statistics SELECT\n\t\t\t\tfv.optionID AS id,\n\t\t\t\tCOUNT(DISTINCT a.id) AS count,\n\t\t\t\tfo.id AS optionID,\n\t\t\t\tfo.name AS optionName,\n\t\t\t\tf.id AS groupID,\n\t\t\t\tf.name AS groupName,\n\t\t\t\tfv.value AS optionValue,\n\t\t\t\tfv.id AS valueID,\n\t\t\t\tst.objectdata AS optionNameTranslation,\n\t\t\t\tst2.objectdata AS groupNameTranslation,\n\t\t\t\tst3.objectdata AS valueTranslation\n\t\t\tFROM s_categories c, s_categories c2, s_articles_categories ac\n\n\t\t\tJOIN s_filter_articles fa\n\t\t\tON fa.articleID=ac.articleID\n\n\t\t JOIN s_filter_values fv\n\t\t ON fv.id=fa.valueID\n\n\t\t JOIN s_filter_options fo\n\t\t ON fo.id=fv.optionID\n\t\t AND fo.filterable = 1\n\n\t\t JOIN s_articles a\n\t\t ON a.id=ac.articleID\n\t\t AND a.active =1\n\t\t\tAND a.changetime <= NOW()\n\n\t\t\tJOIN s_filter f\n\t\t\tON f.id=a.filtergroupID\n\n\t\t\tLEFT JOIN s_filter_relations fr\n\t\t\tON f.id = fr.groupId AND fo.id = fr.optionId\n\n\t\t\tLEFT JOIN s_articles_avoid_customergroups ag\n ON ag.articleID=fa.articleID\n AND ag.customergroupID=1\n\n\t\t\tLEFT JOIN s_core_translations AS st\n\t\t\tON st.objecttype=‘propertyoption’\n\t\t\tAND st.objectkey=fv.optionID\n\t\t\tAND st.objectlanguage=’’\n\n\t\t\tLEFT JOIN s_core_translations AS st2\n\t\t\tON st2.objecttype=‘propertygroup’\n\t\t\tAND st2.objectkey=f.id\n\t\t\tAND st2.objectlanguage=’’\n\n\t\t\tLEFT JOIN s_core_translations AS st3\n ON st3.objecttype=‘propertyvalue’\n AND st3.objectkey=fv.id\n AND st3.objectlanguage=’’\n\n\t\t\t\n INNER JOIN s_filter_articles fv105\n ON fv105.articleID = a.id\n AND fv105.valueID = 105\n \n INNER JOIN s_filter_articles fv123\n ON fv123.articleID = a.id\n AND fv123.valueID = 123\n \n INNER JOIN s_filter_articles fv149\n ON fv149.articleID = a.id\n AND fv149.valueID = 149\n \n INNER JOIN s_filter_articles fv49\n ON fv49.articleID = a.id\n AND fv49.valueID = 49\n \n INNER JOIN s_filter_articles fv17\n ON fv17.articleID = a.id\n AND fv17.valueID = 17\n \n INNER JOIN s_filter_articles fv143\n ON fv143.articleID = a.id\n AND fv143.valueID = 143\n \n INNER JOIN s_filter_articles fv181\n ON fv181.articleID = a.id\n AND fv181.valueID = 181\n \n INNER JOIN s_filter_articles fv178\n ON fv178.articleID = a.id\n AND fv178.valueID = 178\n \n\n\t\t\tWHERE c.id=1\n AND c2.active=1\n\t AND c2.left >= c.left\n\t AND c2.right <= c.right\n\t AND ac.articleID=a.id\n\t AND ac.categoryID=c2.id\n\t AND ag.articleID IS NULL\n\n\t\t\t\n\n\t\t\tGROUP BY fv.id\n\t\t\tORDER BY\n\t\t\t fr.position,\n\t\t\t fo.name ASC,\n\t\t\t IF(f.sortmode=1, TRIM(REPLACE(fv.value,’,’,’.’))+0, 0),\n\t\t\t IF(f.sortmode=2, COUNT(*) , 0) DESC,\n\t\t\t IF(f.sortmode=3, fv.position, 0),\n\t\t\t fv.value

da hilft nur mysql tuning auf webspace wird das aber schwer wahrscheinlich ist die cache für querys zu klein, dadurch wird er nicht schnell genug fertig und schiebt schon die nächste hinterher. wieviel artikel sind es den?

Hallo, du kannst auch mal prüfen wie die MySQL Einstellungen sind ggf. mal beim Hoster nachfragen? Dort sollte die Option “optimizer_search_depth” auf “0” stehen. Das könnte das Problem beireits lösen. Ansonsten sind in dem Bereich auch Anpassungen in 4.0.7 geplant bzw. bereits umgesetzt.

Hallo, aktuell haben wir 294 Artikel. Mit Varianten sind das dann 812 Artikel. Also noch nicht sehr Umfangreich. Es kommen auch noch einige Artikel hinzu… Ich gebe die Frage bzgl. der MySQL Einstellungen gleich mal an Shopwarehosting weiter. Danke.

Hallo, inzwischen wurde unser Shop von Shopwarehosting abgestellt! zum Glück sind noch keine Kunden auf dem System! Die Auslastung ist wohl so extem, das andere Shops auf diesem Server nicht mehr funktionieren. Ich bin echt etwas ratlos. Unser System ist brandneu, es sind gerade mal 812 Artikel incl. der Varianten hinterlegt. Wir nutzten bis auf Bazahlsysteme und Facebook & Co. keine speziellen Module…

Hi, sehe ich das richtig ? Du hast deinen Shop bei einem Hoster der speziell dafür wirbt „Shopwarehosting“ und dort gibt es Probleme mit der Auslastung ? Gerade solch ein Hoster sollte doch seine ganzen Einstellungen daruf getuned haben das der Shops da rennen wie „Sau“ Bzw. sollte solch ein Hoster dir doch sagen können woran es liegt und dir nicht einfach nur einen MYSQL String um die Ohren hauen.

Genau so sehe ich das auch! Deshalb bin ich ja zu Shopwarehosting gegangen. Hier wurde mir auch vesichert, dass sie genau diesen Service bieten. Eine E-Mail mit der Info, dass der Shop abgestellt wird ist schon ein starkes Stück! Ich warte immer noch auf Rückruf… Zum Glück ist der Shop für Kunden noch nicht online!

Hallo, in zwischen fuktioniert der Shop wieder ganz normal. Die Lösung von Sebastian Klöpper wurde von meinem Hoster umgesetzt: MySQL: “optimizer_search_depth” auf “0” nach zwei Tagen kann man wohl davon ausgehen, dass dieses Problem gelöst ist. Der Shopware Support hat mich auch nochmal telefonisch unterstützt. Mochmal vielen Danke! Das Problem waren nicht die Kategorien oder Varianten, sondern die vielen Filter. Wir nutzen diese Fuktion natürlich sehr stark um bei unseren Produkten nach vielen Kriterien wie z.B. Wuchsshöhe, Standort, Blützezeit, etc. zu filtern. Hoffe das ist dann in der neuen Version besser.