Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:

Autor Thema: BAUSTELLE: Zusätzliche Indizes für die Datenbank  (Gelesen 49490 mal)

Offline DokuMan

  • modified Team
  • *****
  • Beiträge: 6.646
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.nandlstadt.com
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« am: 28. Mai 2009, 12:25:37 »
Ich bin bei Recherchen auf folgende Seite gestoßen: xt:Commerce – MySQL 5.0 – Performance

Dabei wird zur Anlage folgender Indizes in der DB geraten, die die Performance steigern sollen. Wie ist eure Meinung dazu?

Code: SQL  [Auswählen]
ALTER TABLE shipping_status ADD INDEX ( language_id );
ALTER TABLE products ADD INDEX ( products_startpage );
ALTER TABLE products_to_categories ADD INDEX ( categories_id );
ALTER TABLE orders_products ADD INDEX ( orders_id , products_id );
ALTER TABLE zones_to_geo_zones ADD INDEX ( geo_zone_id );
ALTER TABLE tax_rates ADD INDEX ( tax_zone_id );
ALTER TABLE products ADD INDEX ( manufacturers_id );

[update vr]
Besser als der zusammengesetzte für orders_products sind 2 einzelne:

Code: SQL  [Auswählen]
ALTER TABLE orders_products
ADD INDEX orders_id (orders_id),
ADD INDEX products_id (products_id);

ausserdem die hier:

Code: SQL  [Auswählen]
ALTER TABLE products_attributes
ADD INDEX products_id (products_id),
ADD INDEX options (options_id, options_values_id);

ALTER TABLE specials
ADD INDEX products_id (products_id);
[/update vr]



Linkback: https://www.modified-shop.org/forum/index.php?topic=963.0

Offline speedy

  • Viel Schreiber
  • *****
  • Beiträge: 3.215
    • Teile Beitrag
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #1 am: 28. Mai 2009, 12:30:39 »
Hallo DokuMan,

danke für den Tipp.

Kann man das gefahrlos testen und ggf. wieder löschen ?
Wie löscht man Indizes im Notfall wieder ?


Offline DokuMan

  • modified Team
  • *****
  • Beiträge: 6.646
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.nandlstadt.com
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #2 am: 28. Mai 2009, 12:45:30 »
Ja könnte man.

Löschen funktioniert z.B. mit

Code: PHP  [Auswählen]
ALTER TABLE 'shipping_status' DROP INDEX ( 'language_id' );
Ich weiß nicht, ob man das mit der "Parse Time" überprüfen kann, da es doch sehr technisch wird, aber eventuell/hoffentlich wird die Zeit weniger ;)

Schau dir auf alle Fälle mal den Link zur Seite an, da gibts noch mehr!


Offline Tomcraft

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 42.741
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.modified-shop.org
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #3 am: 28. Mai 2009, 12:48:42 »
Alternativ geht löschen auch mit der Maus und nem Klick. =)

Hab von den zusätzlichen Indizes auch shcon gehört... hab da aber keine eigene Meinun zu. :-P

  [ Für Gäste sind keine Dateianhänge sichtbar ]


Offline Tomcraft

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 42.741
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.modified-shop.org
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #4 am: 28. Mai 2009, 15:13:30 »
Hier wird das Thema auch diskutiert: http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte Forenregeln beachten! ))/forum/index.php?showtopic=13604


Offline speedy

  • Viel Schreiber
  • *****
  • Beiträge: 3.215
    • Teile Beitrag
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #5 am: 28. Mai 2009, 16:43:10 »
Vorsicht, immer Backups vorm testen machen !
Hab grad etwas getestet und z.B. das hier versucht, wollte "klein" anfangen. Ein Link aus Toms Link:
http://isemann.de/blog/2009/03/19/performance-boost-fur-den-shop-xtcommerce-31/

Doch es legt zumindest zum Teil Indizes an die schon vorhanden sind, Bsp.:

Code: SQL  [Auswählen]
ALTER TABLE 'products_description' ADD INDEX ( 'products_name' );
Hatte zum Glück zuvor ein Backup gemacht, sonst hätte ich alles manuell durchprüfen müssen.
Also man müsste erstmal alles "empfohlene" durchsehen, ob nicht schon vorhanden.

@DokuMan
Danke für den Tipp mit dem Löschen eines Indizes, hat aber leider nicht ganz funktioniert ;)
Der Befehl zum Löschen wäre z.B so:

Code: SQL  [Auswählen]
ALTER TABLE 'shipping_status' DROP INDEX 'language_id';
Komisch, dass es im MySQL Manual anders steht http://dev.mysql.com/doc/refman/5.1/de/drop-index.html - wollte bei mir aber nicht klappen.

Aber...
Wir müssen unbedingt den Apostroph-Fehler im Forum beheben, hatte arge Probleme beim posten und das Problem ist, wenn jemand das mit den Befehlen nachtesten möchte, dann wird das nicht funktionieren, wenn man nicht wie die Syntax das vorsieht, die schrägen Apostroph verwendet. Die schrägen werden jedoch vom Forum rausgefiltert, deshalb die Befehle so mit den geraden Apostrophen. Habs aber getestet ohne die schrägen Befehle klappt es in phpMyAdmin nicht  :cry:


Offline Tomcraft

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 42.741
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.modified-shop.org
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #6 am: 28. Mai 2009, 17:58:11 »
Das Problem mit dem Syntax Highlighter ist Christian schon bekannt und er kümmert sich drum.


Offline DokuMan

  • modified Team
  • *****
  • Beiträge: 6.646
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.nandlstadt.com
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #7 am: 28. Mai 2009, 21:14:52 »
Hi speedy,

danke fürs testen!

Ich denke es macht keinen Sinn, die Indices schon während der Shopinstallation anzulegen, denn da sind sie ja noch leer.
Ich weiß nicht, ob MySQL die Indices automatisch neu aufbaut.
Generell kann wohl gesagt werden, dass die Indices erst am Schluß (also wenn alle Produkte im Shop sind) angelegt werden sollten.
Wie ich das sehe, kommt die "nackte" XT-SQL-Datenbank während der Installation komplett ohne irgendeinen Index auf eine Tabelle...

Ich werde das in die Doku mit aufnehmen.


Offline guensi

  • Viel Schreiber
  • *****
  • Beiträge: 2.288
    • Teile Beitrag
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #8 am: 28. Mai 2009, 21:25:46 »
Zitat
Generell kann wohl gesagt werden, dass die Indices erst am Schluß (also wenn alle Produkte im Shop sind) angelegt werden sollten.

Hmm - und wie ist das wenn man danach neue Produkte anlegt? - funktioniert der Shop dann immer noch? Wäre ansonsten ja ein Schuss in den Ofen.


Offline Tomcraft

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 42.741
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.modified-shop.org
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #9 am: 28. Mai 2009, 21:41:41 »
Also die Indizes aktualisieren sich nicht von alleine, dafür muss zumindest ein "ANALYZE TABLE" durchgeführt werden. Geht auch mit phpmyadmin, wenn ihr in der entsprechenden Tabelle seid unter "Operationen" -> " Optimiere Tabelle". Oder ihr klickt oben auf "Struktur" -> unten dann auf "Alle auswählen" und dann im Dropedown names "markierte:" erst "analysieren" und danach "optimieren"

Oder ihr nutzt wie ich ja immer wieder empfehle mysqldumper, der kann auch die Tabellen analysieren und optimieren, also Indizes neu schreiben. Geht meiner Meinung nach komfortabler als mit phpmyadmin. ;-)

Grüße

Tom


Offline guensi

  • Viel Schreiber
  • *****
  • Beiträge: 2.288
    • Teile Beitrag
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #10 am: 28. Mai 2009, 22:01:54 »
Ja danke, hatte mir den mysqldumper schon runter geladen - aber bisher nicht damit gearbeitet. Wenn das mit den indices wirklich was bringt werd ich mich damit mal näher befassen.


Offline Haina

  • Fördermitglied
  • *****
  • Beiträge: 217
    • Teile Beitrag
    • http://www.hofportal.de
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #11 am: 29. Mai 2009, 00:18:44 »
Hallo Dokuman, tomcraft speedy ...
Hab von nem Bekannten ne SQL bekommen die eine Reihe von Indizies im XTC neu setzt.
Er hat angebl. bei nem Shop mit 100.000 Artikeln ne Geschwindigkeitszuwachs von 30%

Habs bei mir auf nem Testsysten reingezogen , 3000 Artikel.
Gefühlt, nicht gemessen: bring geringfügig was, war auch vorher schon sehr schnell.
Hoffe konnte etwas helfen, SQL im Anhang für Euch.


Offline Haina

  • Fördermitglied
  • *****
  • Beiträge: 217
    • Teile Beitrag
    • http://www.hofportal.de
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #12 am: 29. Mai 2009, 00:21:17 »
ooopps, denied extension, probs nochmal ...
schoo wieder denied, na gut prob copy , paste ...

ALTER TABLE  ADD INDEX (  );
ALTER TABLE  ADD INDEX (  );

Sorry, copy / paste klappt auch nicht.
Würde Euch ja gerne helfen, aber sagt mir nen Weg wie ich Euch das rüberschieben soll.
Gruß


Anonym

  • Gast
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #13 am: 29. Mai 2009, 00:36:57 »
Bringt definitiv was... Habe das bei kaercher-schmitz unter anderem auch hinterlegt. Das sind aber alles nur Einzellösungen die 5 - 10% max bewirken. Wichtig ist immer einen eigenen Server zu haben, wenn man die 10000 Produkte übersteigt.

Ein Server kann speziell mit dem oben genannten Anweisung perfekt eingestellt werden.


Offline speedy

  • Viel Schreiber
  • *****
  • Beiträge: 3.215
    • Teile Beitrag
BAUSTELLE: Zusätzliche Indizes für die Datenbank
« Antwort #14 am: 29. Mai 2009, 01:21:57 »
@Tom,
danke für den Tipp mit dem Index aktualisieren. Dachte die aktualisieren sich selbst, wieder was dazu gelernt ;)
Allerdings bringt mich das auf ein Problem, wie macht man das dann in der Praxis. Immer wenn man neue Produkte eingefügt hat oder evtl. sogar nur geändert hat, müsste man den Index neu erstellen lassen ?

@DokuMan


Zitat
Wie ich das sehe, kommt die "nackte" XT-SQL-Datenbank während der Installation komplett ohne irgendeinen Index auf eine Tabelle...

Weiß nicht genau, wie du das mit "während der Installation" gemeint hast, aber in der Tabelle "products_description" gibts zumindest im Modified Shop einen Index namens "products_name", zum Standard-xtc kann ich nix sagen. Ich habe den Index aber nicht selbst erstellt ;)
Ob es sonst noch welche gibt, weiß ich jedoch nicht, bin nicht alle Tabellen durchgegangen.

@enricosh
magst du es bitte nochmal mit einer Textdatei versuchen, damit wir die Befehle sehen könnten. Wenn du auch noch Skripte oder so mitschicken möchtest wäre ZIP prima.
Wir müssen uns erstmal so helfen, bis das Posten Problem gefixt ist.

Vielen Dank


600x250

Teile per facebook Teile per linkedin Teile per twitter

xx
BAUSTELLE: OpenERP Connector

Begonnen von orgel am Bastelecke

15 Antworten
7624 Aufrufe
Letzter Beitrag 05. Januar 2014, 20:48:46
von Holgi
xx
Bug-Jagd - Fehlende bzw. falsche Indizes

Begonnen von webald am Admin- und Shopbereich

39 Antworten
8210 Aufrufe
Letzter Beitrag 05. Oktober 2017, 15:52:32
von webald
xx
mysql - höhere Perfomance mit mehreren Indizes?

Begonnen von webald am Bastelecke

0 Antworten
485 Aufrufe
Letzter Beitrag 05. April 2016, 09:07:31
von webald
topicsolved
Neue Datenbank - In welcher Datei muss ich die Datenbank-Daten ändern?

Begonnen von ali1993esoterik am Installation / Update

1 Antworten
2049 Aufrufe
Letzter Beitrag 05. September 2011, 11:51:04
von franky_n