Ankündigung

Einklappen
Keine Ankündigung bisher.

Suche ist viel zu langsam

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Suche ist viel zu langsam

    Hallo,

    wo kann ich denn ansetzen wenn die Suchfunktion so dermaßen langsam ist?

    Glaubt ihr es liegt am 1.3.9 vs. 1.5.1? Wenn ja mach ich mal einen Diff zwischen beiden Suchfunktionen.

    Hinweis: ich habe ca. 270.000 Artikel im Shop.

    Wenn ich im MySQL Admin suche mit dieser SQL:

    SELECT *
    FROM `products_description`
    WHERE `products_description` LIKE '%oc18%'

    dann bekomme ich das so: Zeige Datensätze 0 - 5 (6 insgesamt, die Abfrage dauerte 1.7392 sek.)
    Das ist auch ok und würde mir gefallen.

    Suche ich im Shop dann dauert es 6 Sekunden :(
    Das SQL-Protokoll enthält dann auch 3 Dateien, wobei die größte mit über 2000 Zeilen scheinbar jede Produkt-Id abfragt.
    Also in der Art:

    I AM HERE advanced_search_result
    sidebox:

    Explain
    select products_price, products_priced_by_attribute from products where products_id = '1160352';



    I AM HERE advanced_search_result
    sidebox:

    Explain
    select options_id, price_prefix, options_values_price, attributes_display_only, attributes_price_base_included, round(concat(price_prefix, options_values_price), 5) as value from products_attributes where products_id = '1160352' and attributes_display_only != '1' and attributes_price_base_included='1' order by options_id, value;



    I AM HERE advanced_search_result
    sidebox:

    Explain
    select products_price, products_model, products_priced_by_attribute from products where products_id = '1160352';



    I AM HERE advanced_search_result
    sidebox:

    Explain
    select products_price, products_priced_by_attribute from products where products_id = '1160352';



    I AM HERE advanced_search_result
    sidebox:

    Explain
    select options_id, price_prefix, options_values_price, attributes_display_only, attributes_price_base_included, round(concat(price_prefix, options_values_price), 5) as value from products_attributes where products_id = '1160352' and attributes_display_only != '1' and attributes_price_base_included='1' order by options_id, value;



    Nunja, nun meine Frage. Weiß hier einer was da los ist? Warum ist das so und wie könnte man das abkürzen?

    Ehe ich mich nun hinstelle und die Suche neu programmiere wollte ich zumindest mal fragen ob es andere Möglichkeiten gibt.

    Gruß,
    hari

    #2
    Verwendest Du in diesem Shop Attribute?
    Falls ja, gibt es da welche, die den Preis verändern?

    Kommentar


      #3
      Ja, ich verwende bei einigen Artikeln ein Attribut Pfand welches nicht abwählbar ist und im Warenkorb draufgerechnet wird. Der Artikel selbst zeigt erstmal den Preis ohne Pfand an, es steht nur darunter: zzgl. Pfand.

      Allerdings kann ich die Attribute auch nicht mehr im Shopadmin verwalten. Hinzugefügt zu den Artikeln habe ich die per SQLs direkt in der Datenbank. Wenn ich versuche options_name_manager.php zu öffnen bekomme ich nur eine Fehler 500 nach sehr langer Zeit und irre viele und große query_selects im cache-Verzeichniss.

      Kommentar


        #4
        Was ich ändern würde:

        1)
        Das Protokollieren der Datenbankabfragen selbst geht extrem auf die Performance. Wozu das ganze?
        Konfiguration > Protokollierung > Datenbankabfragen in Protokolldatei speichern > false

        2)
        In einem Shop mit 270000 Artikeln würde ich keine Attribute verwenden, die den Preis beeinflussen. Es muss bei jeder Abfrage auch geschaut werden, ob ein solcher attributgesteuerter Zusatzpreis definiert ist, um überhaupt den korrekten Preis eines Artikels anzeigen zu können.
        Darauf verzichten und Konfiguration > Attributeinstellungen > Preis durch Attribute und Textpreise auf false
        Falls keine Mengenrabatte verwendet werden das ebenfalls auf false

        3)
        Wenn preisrelevante Attribute deaktiviert werden, dann muss auch diese Pfandgebühr anders gelöst werden. Per Attribut ist die ohnehin nicht so sinnvoll. Besser wäre bei den Artikeln ein entsprechendes neues Feld für die Pfandanzeige zu integrieren, die falls befüllt anzeigt wieviel Pfand im Artikelpeis enthalten ist und den Artikelpreis selbst inklusive Pfand zu hinterlegen.

        4)
        1.3.9 nicht mehr verwenden. Statt 1.3.9 irgendwie auf aktuelle PHP Versionen hinzubiegen und weiter in Uraltcode auf Fehlersuche zu gehen auf 1.5.1 updaten.

        Kommentar


          #5
          zu 1.
          Das schalte ich nur ab und an ein um zu sehen was der Shop so macht

          zu 2.
          Habe ich jetzt mal alles ausgeschalten.

          zu 3.
          Mal sehen wie das umzusetzen wäre.

          zu 4.
          Ist geplant, ist aber super aufwändig! Ich muss jede Datei per diff vergleichen da ich die Originalshopsoftware an vielen Stellen umgebaut habe. Es sind auch viele Erweiterungen drin. Das geht nicht so einfach.

          5.
          Gerne kann ich per PM mal die URL auf die Testumgebung schicken.

          Kommentar


            #6
            Zitat von hari Beitrag anzeigen
            Ist geplant, ist aber super aufwändig! Ich muss jede Datei per diff vergleichen da ich die Originalshopsoftware an vielen Stellen umgebaut habe. Es sind auch viele Erweiterungen drin. Das geht nicht so einfach.
            Klar ist das ein Aufwand. Allerdings läuft der 1.3.9 ja anscheinend alles andere als rund oder? Immer mehr Provider schalten PHP 5.3 bereits ab und um einen performanteren zukunftssicheren Shop zu haben gibt es dazu keine Alternative. In den nächsten Wochen wird 1.5.2 erscheinen, dann könntest Du für das Update gleich diese neue Version verwenden. Bei Interesse an einem Betatest einfach per PM melden. Seit 1.5.1 ist ein query_caching integriert, das gerade bei so großen Shops einiges bringt.

            Kommentar

            Info zu diesem Forenarchiv:
            Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
            Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
            Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
            PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
            Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
            FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

            Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
            Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
            Fehler in der Software können auf Github als Issues gemeldet werden.
            Follow us
            aktuelle version
            Zen Cart 1.5.7g deutsch
            vom 12.12.2023
            [Download]
            Lädt...
            X