Datenbankabfrage optimieren

WolfCastle

Benutzer
Beiträge
7
Hallo zusammen,


Ich hoffe in diesem Forum richtig mit meinem Anliegen zu sein und hier ggf. auch Hilfe zu bekommen.

Bei meinem Problem dreht es sich um die Anfragen, die von meinem seit gestern online geschaltetem Versandshop an meine Datenbank gesendet werden. Diese überlasten die Server und dementsprechend langsam kann sich meine Seite aufbauen.

Nach Rücksprache mit meinem Webhoster wurde mir mitgeteilt, dass diese Anfragen zu viel Last erzeugen würden.

Ein Beispiel dessen, was mir gestern geschickt wurde:

SELECT DISTINCT p.products_id, pd.products_name, pd.gm_alt_text, pd.products_meta_description, p.products_image, p.products_tax_class_id, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_price FROM products p, products_to_categories p2c, products_description pd, categories c WHERE p.products_status = 1 AND p.products_id = pd.products_id AND pd.language_id = '2' AND p.products_id = p2c.products_id AND p.products_id != '0' AND c.categories_id = p2c.categories_id AND p.products_date_added > '2012.02.05' AND c.categories_status = 1 ORDER BY p.products_date_added DESC LIMIT 30

Desweiteren haben wir einmal den Überhang aus der Tabelle "products_description" entfernt. Dieser betrug knapp 100MB. Sie sollten bei häufigen Änderungen von Datensätzen öfters die Datenbank auf Überhänge prüfen und diese entfernen.



Da ich ehrlich gesagt im Bereich der Arbeiten mit einer SQL Datenbank ein ziemlicher Laie bin, würde ich mich gerne erkundigen, ob es Programme gibt, die solche Anfragen optimieren können, damit das Laden der Internetseite wieder "normal" ablaufen kann und keine Ewigkeit braucht.
 
Werbung:
Eigentlich scheint mir die Anfrage nicht besonders groß oder problematisch. Wichtig für die Geschwindigkeit sind vor allem Indizes, dazu kann ich aber keine große Hilfestellung geben, das Thema sollte anderswo auch ausfürlich zu finden sein.

Was für einen "Überhang" soll es dann da geben, oder liefert die Ausgabe bei 30 Spalten 100MB zurück? Das kann ja eigentlich nicht sein.

Auf jedenfall sollte man den Server mal lokal zum testen aufsetzen damit man die Abfragezeit selbst nachvollziehen kann wenn man an der Abfrage was ändert.
 
Diese Anfrage jedenfalls wurde mir von dem Technik Support meines Web Hosters als "Mitgrund" zugeschickt.
Testen bzw. es selbst merken kann man unter www.meine-auto-welt24.de , wie man sehen kann, dauert der Aufbau der Seite
sehr lange, was eben auf diese Anfrage anscheinend zurück zu führen ist.

Und wie bereits gesagt, mit der SQL Datenbank kenne ich mich leider garnicht aus, deßwegen wäre mir ein Programm was eine Optimierung durchführt
lieber, als wenn ich selbst in der Datenbank Änderungen durchführen müsste und ggf. mehr Schaden anrichte als etwas zu optimieren.
 
Dennoch, die Abfrage an sich ist kein Grund. Ich denke mal es liegt allein am products_image und das du deine Bilder direkt in der DB liegen hast, was bei großen Bildern natürllich viele Daten bedeutet.

Solche Programme mag es geben, aber Datenbanken erfordern numal ein gewisses Maß an Verständniss. Ich musste mich bisher noch nicht mit Indizes auseinander setzen weil alle großen Anwendungen bei uns die selbst verwalten. Diese Anwendungen sind aber auch keine selbst geschriebenen Webshops :)
 
Die Bilder wurden von der JTL WaWi hochgeladen.... das Gambio XT-Imageprocessing hatte ich bereits laufen lassen, ebenso eine Verkleinerung der Bilder.

Würde es denn eine Möglichkeit geben, entweder die Bilder aus der Datenbannk auszulagern und so die Geschwindigkeit des Aufbaus wieder zu erhöhen oder ggf.
eine Maßnahme?

Ich hatte bisher auch noch nicht viel mit der Datenbank zu tun. Ein anderer Shop läuft ohne Probleme, aber dort sind auch "nur" knappe 2.000 Artikel
gelistet, nicht wie bei dem jetzigen knappe 50.000
 
Ja du kannst einfach einen Link in der Datenbank speichern und dann den Link in deinen Shop einbetten. Natürlich muss man das bei der Pflege neuer Produkte berücksichtigen. Du kannst deine Abfrage ja mal vorrübergehend auf ohne die Spalte aus der DB ausführen und ein Dummy als Bild einbetten, dann siehst du, wie schnell die Seite lädt. Auch wenn jetzt die Bilder nicht sehr groß scheinen kann eigentlich nur da oder beim Tabellen Index / Indices das Problem liegen.
 
Ok.... jetzt wird es schon kompliziert :confused:

Also meinst du für jedes Bild einen eigenen Link erstellen?
Wie würde dieser Link denn dann aussehen und wie kann ich diesen im Shop einbetten, da Gambio für die
Bilder in der Regel ja nur das Upload Verfahren annimmt.
 
Ich habe keine Ahnung, ich dachte du hättest den Shop selbst gebastelt -.-

Wenn das so beim Shop vorgesehen ist und der auf einem erproptem System beruht sind es vieleicht nicht die Bilder (solange nicht zu groß). Dann sollte aber der Shop Anbieter was konkreteres zu der Geschwindigkeit sagen können. Es kann nicht sein das ein JOIN über 4 Tabellen mit 30 Ergebnissen über eine Sekunde braucht.
 
Wieviele Leute greifen denn gleichzeitig auf den Shop zu?
Und sind Indexe über die wichtigsten Zugriffspfade gelegt?
Hast Du schon mit dem Anbieter des Webshop-Scripts gesprochen, ob er Dir Optimierungsempfehlungen geben kann?
 
Im Moment greift eigentlich fast nur Google auf den Shop zu, da dieser auch erst seit gestern online geschaltet wurde. Es "verirren" sich zwar schon andere Nutzer drauf, aber für eine Überlastung
wäre die Anzahl noch viel zu weit entfernt.

In wie fern ist von dir die 2. Frage gemeint?

Ich hatte heute Nachmittag an Gambio direkt eine Anfrage nach Lösungsvorschlägen gestellt, bis jetzt allerdings keine Rückantwort erhalten.
 
Wenn ohnehin noch fast niemand darauf zugreift, gibt es auch keinen Grund für eine Überlastung. Nur durch Google alleine? Unwahrscheinlich. (Übrigens kannst Du auch die Häufigkeit der Zugriffe durch Google regeln in den Google Webmaster Tools)

Ein Index an der richtigen Stelle wirkt oft Wunder, aber dazu müsstest Du Dich entweder selber ein wenig mit der Datenbank und dem Programm beschäftigen oder noch besser, Dir vom Anbieter helfen lassen.

Eine andere Möglichkeit ist natürlich, dass Dein Webhost den Server hoffnungslos überbelegt hat um mehr Geld damit zu verdienen (beliebt vor allem bei Billiganbietern).
 
Ich schätze mal, dass es was mit den Artikeln zu tun hat.
Ich bekomme auch eine Fehlermeldung, wenn ich einen Artikelexport z.B. für Preisroboter machen will (im Anhang mal hinzugefügt).

Am Web Hoster kanns eigentlich nicht liegen, bin bei All-Inkl und die sind recht gut, zudem läuft ein 2. Shop völlig reibungslos.
 

Anhänge

  • Fehlermeldung.JPG
    Fehlermeldung.JPG
    193,1 KB · Aufrufe: 3
Wenn es wirklich was mit den Artikeln zu tun haben sollte, was ich bezweifle, wäre das ja lokal mit dem gleichen Aufbau der DB und den gleichen Daten simulierbar. Das würde auch ein gutes Testsystem abgeben.

Ich sehe nur zwei Möglichkeiten: Entweder du beschäftigst dich selbst mit dem Problem (dann solltest du mit einem Testsystem bzw. Befassung mit Indizes beginnen) oder dein Dienstleister sucht das Problem. Das kann er eventuell selbst verschuldet haben, eventuell aber auch nicht. Ich weiss nicht wie der Support des Anbieters da tätig wird oder ob die sagen ist nicht unser Problem.
 
Werbung:
Also der letzte Stand ist, dass es was mit den Scipten der Artikel bzw. vom Gambio Shopsystem zu tun hat.

Hab jetzt die letzten 2 Updates für Gambio draufgespielt, gab zwar noch mal wegen was anderem Probleme, sodass der Shop
erneut komplett gelöscht und neu gemacht werden muss, aber bei einem Test hat der Artikel Export diesmal funktioniert und die
Geschwindigkeit war auch zufriedenstellend. Jetzt hat man zwar nicht den Grund für die Probleme gefunden, durch die Updates
scheinen diese jedoch behoben worden zu sein.
 
Zurück
Oben