Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: BAUSTELLE: Zusätzliche Indizes für die Datenbank

    vr

    • modified Team
    • Beiträge: 2.664
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #45 am: 21. April 2010, 19:41:15
    Hallo,

    bin gerade über eine Stelle im Shop gestolpert, die im slowlog aufgetaucht ist, nämlich die Abfrage für die Artikelliste unter "Kunden, die diesen Artikel gekauft haben, kauften auch", also bei jeder Einzelansicht eines Artikels!. Die Abfrage skaliert nicht gut. Solange nicht viele Bestellungen im Shop sind, fällt das nicht auf, aber in meinem Testshop hatte die orders_products über 20000 Sätze, und die Abfrage brauchte auf einem fetten Server reproduzierbar 12 Sek!. Abhilfe schaffen folgende Indizes:

    Code: SQL  [Auswählen]
    ALTER TABLE orders_products
    ADD INDEX orders_id (orders_id),
    ADD INDEX products_id (products_id);
     
    Anschließend lag die Abfrage bei ca 200 ms, also Faktor 60 schneller. Im ersten Posting dieses Themas wurde in dem Dunstkreis bereits ein zusätzlicher Index empfohlen, der die beiden Felder zusammenfasst. Besser sind aber zwei einzelne Indizes, weil nur 1/10 der Satzanzahl gegenüber den zusammengesetzten Indizes betrachtet wird.

    Grüße, Volker

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #46 am: 21. April 2010, 20:14:42
    Hi Volker,

    Du kannst gerne den ersten Beitrag editieren, damit wir das einmal komplett und übersichtlich beisammen haben. ;-)

    Grüße

    Torsten

    vr

    • modified Team
    • Beiträge: 2.664
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #47 am: 21. April 2010, 21:07:28
    Done. Hab sie in r883 eingecheckt.

    Grüße, Volker

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #48 am: 21. April 2010, 21:50:33
    Cool, danke!

    Wenn wir die anderen Indizes gesichtet, bewerte und für gut/nicht gut befunden haben, dann aktualisiere ich die Demoshop Datenbank noch mit den neuen Indizes. ;-)

    Grüße

    Torsten

    vr

    • modified Team
    • Beiträge: 2.664
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #49 am: 21. April 2010, 22:16:19
    Die 3 (specials, orders_products und products_attributes) hab ich dort schon eingebaut.

    Grüße, Volker

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #50 am: 21. April 2010, 22:40:26
    Nanu? Das sind aber andere als in r883, oder hab ich einen Denkfehler?

    Grüße

    Torsten

    vr

    • modified Team
    • Beiträge: 2.664
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #51 am: 22. April 2010, 22:36:07
    Das war nur orders_products, products_attributes kam in r884 bzw Korrektur in r885. specials hatten wir schon, fehlte aber in der demoDB.

    Grüße, Volker

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #52 am: 22. April 2010, 22:41:26
    Stimmt, das kam in r803.

    Du hast nun aber nur die Indizes in der Demo-DB gesetzt, richtig? Alle anderen Änderungen aus der "update_1.03_to_1.04.sql" sind noch nicht integriert?

    Grüße

    Torsten

    vr

    • modified Team
    • Beiträge: 2.664
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #53 am: 22. April 2010, 23:20:18
    Ja das stimmt. Soll ich das nachziehen, so dass die DemoDB vollständig der 1.03->1.04 entspricht?

    Grüße, Volker

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #54 am: 23. April 2010, 08:28:51
    Das wäre super, sonst kommen wir später durcheinander.

    Ich hatte aus dem Grund die DB bisher gar nicht angefasst um genau das zu vermeiden, dass wir die jedes Mal anpassen müssen, damit wir es nicht später vergessen. Aber es aktuell zu halten hat ja auch seine Vorteile. ;-)

    Grüße

    Torsten

    vr

    • modified Team
    • Beiträge: 2.664
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #55 am: 25. April 2010, 10:29:43
    Genau, dann haben wir eine Referenz, von der wir bspw die xtcommerce.sql des Installers erzeugen können. Man kann jetzt einfach ein Diff zwischen xtcommerce.sql des Installers gegen ein metabackup unserer DemoDB machen, dann sieht man die Unterschiede. Ich gehe die Abweichungen mal durch und sage Bescheid.

    Grüße, Volker

    web28

    • modified Team
    • Beiträge: 9.404
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #56 am: 25. April 2010, 19:03:30
    Haben wir irgendwo eine komplette Übersicht der neuen Indizes?

    Gruss Ronald

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #57 am: 25. April 2010, 19:06:02
    Jepp, in der "update_1.03_to_1.04.sql" siehst du die neuen.

    Grüße

    Torsten

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #58 am: 25. April 2010, 19:37:30
    Wie macht Ihr das mit der Update-SQL bei der Version 1.04.
    Die Tipps hier und da Indizies zu erstellen, gibt es ja schon einige Zeit u.a. hier im Forum.
    Was macht derjenige, der also schon Indizes erstellt hat, der hats ja dann doppelt drin, oder ?
    Könnt Ihr mit der Update-SQL erst alle ggf. vorhandenen Indizes löschen lassen und dann die neuen gemäß Eurer Empfehlung erstellen lassen ?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    BAUSTELLE: Zusätzliche Indizes für die Datenbank
    Antwort #59 am: 25. April 2010, 19:41:09
    Ein guter Hinweis!

    Ich denke da hast du vollkommen Recht. Wir sollten vorher alle Indizes der entsprechenden Tabellen löschen und danach neu erstellen.

    Grüße

    Torsten

    Shop Hosting
    15 Antworten
    14414 Aufrufe
    05. Januar 2014, 20:48:46 von Holgi
    39 Antworten
    19911 Aufrufe
    05. Oktober 2017, 15:52:32 von webald