Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Tipps & Tricks ›

Beschleunige dein Drupal und spare Speicherplatz. Schwierigkeitsgrad: für vortgeschrittene

Eingetragen von drruebe (271)
am 27.09.2016 - 18:50 Uhr in
  • Tipps & Tricks
  • Drupal 7.x oder neuer

Wer kennt es nicht?
Man legt ein Produkt an mit 100 Produktvariationen und dem selben Bild.
Als Beispiel: Ein Schließzylinder in Länge 30/30 mit 3 bis 20 Schlüsseln.
Weitere in Längen 30/35, 30/40, 30/45, ..., 50/60.
So hat man, selbst wenn man es auf die Nodes beschränkt, ganz schnell riesige Datenmengen von "einem" Bild auf dem Server und die DB bläht sich auch unendlich auf.

Module die das verhindern sollen gibt es zwar, doch scheinen die nicht mit feeds zusammen zu funktionieren.

Dieses Problem kann man recht unspektakulär lösen.

Hier gehen wir Schritt für Schritt vor.

Nachdem wir unser Produktportfolio importiert haben, sehen wir uns in der DB die Tabelle "file_managed" an.
Es kommt vor, dass die oberste "fid" auf "image-name_0.jpg" verweist.
Wir benötigen die "fid" image-name.jpg".

Als nächstes laden wir uns aus der DB die Tabelle "field_data_field_image" beziehungsweise "field_data_field_your-feldname" als "CSV-file" runter und öffnen dieses.

In der Spalte "fid" kopieren wir nun die "fid" von "image-name.jpg" in alle nachfolgenden Felder, welche das selbe Bild haben. Speichern und in der DB importieren.
Nun improtieren wir die selbe Datei nach "field_revision_field_your-fieldname"

Cache löschen, Cron ausführen.

Jetzt greifen alle Produkte auf die selbe Bilddatei zu und alle anderen Bildderivate können gelöscht werden.

Als nächstes exportieren wir die Tabelle "file_managed", öffnen diese und löschen hier die nicht mehr benötigten Zeilen, welche auf die Bildderivate zielen.
Hochladen, Cache löschen, Cron ausführen.

Wer sehr viele Produkte hat, dem rate ich:
Für jedes Produkt einen eigenen Bildverzeichnispfad.
Für jedes Produkt ein eigenes Bildfeld.
(image-field-1, image-field-2, etc.)

Ich hoffe das hilft euch ein wenig.
Beste Grüße
Frank Wiedenfeld

-------------------------------------------------

Accelerate your Drupal Commerce and save space

Who does not know it?
It creates a product with 100 product variations and the same picture.
As an example: A locking cylinder in length 30/30 of 3 to 20 keys.
More in lengths 30/35, 30/40, 30/45, ..., 50/60.
So you have, even if you look at only the Nodes, quickly huge amounts of data from "a" picture on the server and the DB inflates also infinity.

Modules are intended to prevent the are there, but do not seem to be working with feeds together.

This problem can be solved quite unspectacular.

Here we go step by step.

After we have imported our product portfolio, we are in the DB table "file_managed".
It happens that the top "fid" refers to "image-name_0.jpg".
We need the "fid" image-name.jpg ".

Next, we invite us from the DB table "field_data_field_image" or "field_data_field_your-fieldname" down as "CSV file" and open it.

In the column "fid" we will copy the "fid" of "image-name.jpg" into all these fields, which have the same image. Import and save in the DB.
Now import the same file to "field_revision_field_your-fieldname".

Clear cache, run cron.

Now grab all the products in the same image file and all other image derivatives can be deleted.

Next, we export the table "file_managed", these open and delete here unneeded rows, which are aimed at the image derivatives.
Upload, Clear cache, run Cron.

Who has very many products, I advise:
For each product its own image directory path.
For each product its own field.
(Image-field-1, image-field-2, etc.)

I hope this helps you a little bit.
Best regards
Frank Wiedenfeld

Translated with Google

‹ gelöst: Textformat unzähliger nodes mit wenigen Handgriffen ändern? Wie mit Rules die Uhrzeit in einem Datumsfeld ändern? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Genialer Tipp

Eingetragen von dinmikkith (1583)
am 28.09.2016 - 08:44 Uhr

Super Tipp Wird gleich ausprobiert. Schönes Tutorial!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eine interessante

Eingetragen von Stefan.Korn (286)
am 28.09.2016 - 16:09 Uhr

Eine interessante Herangehensweise und es spricht eine "Real Life"-Problematik an und sicherlich gut das mal zu thematisieren.

Das Vorgehen zeugt von keiner Furcht vor der Datenbank :-)

IMHO:
Ein bisschen hacky und auch nicht unaufwändig ist das aber schon.
Vielleicht für eine einmalige Aktion nach einem Erstimport geeignet aber nicht unbedingt elegant und für kontinuierliche Importe eher nicht geeignet.

Wenn alle Variationen das gleiche Bild haben macht es doch vielleicht Sinn das Bild nur im zugehörigen Node zu hinterlegen.

Alternativ könnte man denke ich mit Feeds Tamper vielleicht auch eine solche Lösung schaffen die dann aber in Feeds integriert und automatisiert ist.

Weitere Option sollte das Media-Modul sein, inwiefern sich das allerdings mit Feeds verträgt weiß ich nicht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Entity Reference

Eingetragen von DrupalFan (1646)
am 28.09.2016 - 20:24 Uhr

Kann man da nicht auch mit Referenzen bzw. Entity Reference arbeiten?

Man erstellt das Bild einmal und referenziert es dann in allen Nodes, welche exakt das gleich Bild beinhalten sollen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Moin, Drupal legt für jedes

Eingetragen von drruebe (271)
am 28.09.2016 - 20:45 Uhr

Moin,
Drupal legt für jedes Bild, dass über root/bildordner importiert wird ein Derivat an "image.jpg_0, image.jpg_1, etc." und das setzt sich dann auch fort in den "Image-Styles" und schwub die wub ist die HDD voll mit Müll.

Und so wie ich es beschrieb "ich habe für jeden Schließzylinder" etwa, mind. 20 Nodes, kommen wir hier schnell phantastische Datenmengen.

Mein beschriebener Weg beinhaltet auch, dass dieses eine und einzige Bild mit einzigartigen "Bildtiteln und ??? Ersatzbeschreibungen (ich komme gerade nicht auf den Fachausdruck, für den Ersatztext, wenn das Bild nich dargestellt werden kann)" versehen werden kann.

Ich denke Feeds Temper und andere Module habe ich für diesen speziellen Fall schon bis zum exitus erfolglos probiert.

Was den Aufwand angeht: über 1500 Produkte mit etwa 35000 Produktvariationen konnte ich "nachdem ich mich darauf eingefuchst hatte" binnen gut 15 Minuten anpassen und konnte einen realen Speedzuwachs messen, da die Tabelle "file_managed" von MB auf KB zusammengeschrumpft ist und auch nicht 1000de von Bildern (img.jpg_35001) erst abgefragt werden musten

Ein entsprechendes Modul für den DB-Upgrade wünsche ich mir. Dann kann man auch News etc. mit selben Bild easy und nutzerfreundlich (Ladezeiten) automatisiert importieren.

Grundlegend denke ich, dass es bei der Entwicklung des Cores einen kleinen Denkfehler gab, der darauf abzielte, dass Drupal darauf ausgelegt ist, dass ein Bild mit gleichem Namen nicht das gleiche Bild beinhalten muss, was allerdings auch nicht wirklich falsch ist...

Beste Grüße aus Hamburg
Frank

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 2 Tagen 21 Stunden
  • Guckst du hier: step by step
    vor 2 Tagen 11 Stunden
  • Guckst du hier: step by step
    vor 2 Tagen 11 Stunden
  • Ich habe ja keine Angst vor
    vor 1 Woche 4 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 2 Wochen 2 Stunden
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 1 Tag
  • Du hast die "Trusted host
    vor 2 Wochen 2 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 1 Tag
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 4 Wochen 4 Tagen
  • Arrrrg. Nix Tabelle :-D /*
    vor 8 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250284
Registrierte User: 20498

Neue User:

  • Inga GuAph
  • Robertolix
  • DavidBit

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 22 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