Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Wie langsame SQL-Abfrage beschleunigen?

Eingetragen von rhodes (631)
am 19.01.2018 - 10:33 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hallo zusammen,

in einer Drupal 7 Installation möchte ich eine SQL mit db_query durchführen, die für angemeldete User jeweils eine individuelle Liste mit Nodes ausgibt.

Die Abfrage ist ziemlich komplex, schließt natürlich die node-Tabelle mit ein, mehrere Flag-Felder sowie Tabellen einiger selbst geschriebener Module. Nur um eine Hausnummer zu nennen: die node Tabelle hat 40.000 Einträge, die einzelnen CCK-Felder, Flag-Felder und die individuellen Tabellen beinahe ebenso viele. User sind es ca. 2000.

Meine SQL-Abfrage funktioniert, liefert also ein Ergebnis, allerdings dauert die Abfrage 3 Sekunden. Das ist in einer Produktionsumgebung natürlich völlig indiskutabel.

Die Frage ist wie ich das beschleunigt bekomme. Die SQL-Abfrage benötigt eine ganze Reihe von "LEFT JOIN" und die große Datenmenge tut wohl ihr Übriges. Ich meine irgendwo mal gelesen zu haben, dass sich Drupal durch zusätzliche DB Indizes beschleunigen liesse. Hat jemand Erfahrung damit bzw. hat einen anderen Tipp, wie ich die Abfrage beschleunigen könnte.

Danke & Grüße, rhodes

‹ Hosting 2GB MySQL Ckeditor Bilder Colorbox ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

mySQL

Eingetragen von qb (149)
am 19.01.2018 - 11:01 Uhr

Moin,

klar. Die zusätzliche Anlage spezifischer Indizes ist immer eine Möglichkeit. Dazu musst Du aber den Aufbau der DB und vor allem des Querys sehr gut verstehen und (das ist noch entscheidender) bei einer Datenbank über die Du nicht die volle Hoheit hat ist das keine gute Ide. Denn beim nächsten DB-Update durch D7 verschwienden dise zusätzlichen (individuellen) Änderungen vermutlich wieder. Wenn Du Pech hast fleigt dir dann soga gleich die ganze DB um die Ohren. - Fazit, an der Struktur der Db würde ich an deiner Stelle nichts ändern!

Mit dem leidigen Thema mySQL tuning durfte in mich in meinem letzten Projekt (30+ Programmierer) mehrer Wochen rumschlagen. Im Grunde läuft es immer darauf hinaus die Querys zu optimieren. Ich vermute mal, dass Du die Querys via Views erzeugst? Wenn ja, schau dir das resultierende Query an und schau mal ob Du das optimieren kannst und und führ das direkt über die D7 API aus (wie das geht ist ein eigenes Thema ... aber das schaffst Du schon :).

Ansonsten kannst Du noch schaun ob deine mySQL-Umgebung wirklich genug Speicher hat und die temporären Tabellen (RAM) diese auch nutzen. Da Du hier nicht die Umgebung beschrieben hast, kann ich an dieser Stelle nur diesen allgemeinen Tipp geben. Wenn Du root-Zugriff(shell-Zugriff auf die Installation hast, google mal nach "mysqltuner". Das ist ein Script welches die diversen mySQL-Parameter checkt und Dir Hinweise gibt wie Du durch einfache Einträge in die mysql.ini dem System die Sporen geben kannst.
Das Script liegt hier "http://mysqltuner.com/"... das wird unter Ubuntu installiert via: "wget http://mysqltuner.pl" oder "apt-get install mysqltuner". Ausführung über: "perl mysqltuner.pl"

LG
Peter

PS: Hier schneit es grade richtig hefftig!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 4 Stunden
  • Hey danke
    vor 1 Tag 23 Stunden
  • Update: jetzt gibt's ein
    vor 2 Tagen 17 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 3 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 6 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 20 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association