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 - 17: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 (1221)
am 28.09.2016 - 07:44 Uhr

Super Tipp Wird gleich ausprobiert. Schönes Tutorial!

https://drupal-tv.de
Drupal sehen und lernen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eine interessante

Eingetragen von Stefan.Korn (286)
am 28.09.2016 - 15: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 (1640)
am 28.09.2016 - 19: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 - 19: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

Die Ruhe sei den Menschen heilig, nur bekloppte haben's eilig.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Wer ist online Block
  • Doppelte Anzeige von Node im View
  • Content Ex-/Import
  • URL-Alias von bestehendem Link wird gelöscht und auf -0 gesetzt 404 Fehler entsteht
  • Ausblenden von Taxonomy wenn diese keinen Inhalt haben
  • Image als Anhang
  • [gelöst] Benutzer erstellen ohne Berechtigung zum ändern von E-Mail oder Passwort
  • HTTP ERROR 500, wenn der Node eines bestimmten Typs gespeichert wird oder ein neuer Inhalt dieses Typs erzeugt werden soll
  • Module modifizieren zb Statuses
  • Exposed Filter einer View in seperatem Block darstellen, wie kann ich die exposed Filter der zug. View deaktivieren
  • Website ohne öffentlichen Zugriff
  • »Geschwister« Nodes anzeigen
Weiter

Neue Kommentare

  • dinmikkith schrieb Ja du hast
    vor 1 Tag 9 Stunden
  • SaarlandToday schrieb Es gibt
    vor 1 Tag 17 Stunden
  • ich hab das Problem gefunden!
    vor 1 Tag 18 Stunden
  • Sorry, das mit dem Theme war
    vor 1 Tag 18 Stunden
  • Zitat: Es gibt in den
    vor 1 Tag 19 Stunden
  • Es gibt in dem Template das
    vor 2 Tagen 5 Stunden
  • Zitat: da es dort eine
    vor 2 Tagen 6 Stunden
  • Sorry, dachte das ich das
    vor 2 Tagen 8 Stunden
  • Ich habe den Fehler gemacht
    vor 2 Tagen 9 Stunden
  • Kein zusätzliches Modul nötig
    vor 2 Tagen 10 Stunden

Statistik

Beiträge im Forum: 245939
Registrierte User: 18824

Neue User:

  • Damian1802
  • MrWebMV
  • kiba

» Alle User anzeigen

User nach Punkten sortiert:
wla9007
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3916
ronald3829
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 4 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