[erledigt] Frage zu node_save
am 05.06.2014 - 16:23 Uhr in
Hallo Freunde,
da ich kein Coder bin, habe ich eine Frage.
Wenn ein bestehender Node (mit z.B. 30 befüllten Feldern) editiert (nur ein Feld wurde geändert) und danach gespeichert wird (Function node_save), werden dann alle Values aus allen Feldern neu in der Datenbank gespeichert oder nur der Value des einzelnen Feldes welches geändert wurde?
Erkennt Drupal, dass Values aus schon bestehenden Feldern nicht geändert wurden und skipt sie dann beim Speicher-Prozess ?
Danke und Gruß
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben

Da node_save() unter anderem
am 05.06.2014 - 17:53 Uhr
Da node_save() unter anderem hook_update() und field_attach_update() aufruft, würde ich sagen, dass alle Felder neu überschrieben werden. Zumindest lässt sich im Code keine Gegenprüfung finden.
Hallo Glycid,danke für die
am 05.06.2014 - 18:05 Uhr
Hallo Glycid,
danke für die Info - genau das habe ich befürchtet.
Gibt es (irgendwie) eine Möglichkeit nur die Values/Felder neu abzuspeichern die auch geändert wurden? Ich habe nämlich Nodes (das sind Profile) mit bis zu 70 verschiedenen Feldern (Text, Images, Taxos, Multiple etc.) und wenn man solch einen Node editiert und speichert, obwohl man nur ein einziges Feld geändert hat, dauert der Speicherprozess immer 10 - 15 Sekunden (und das obwohl ich einen Dedicated-Root Server mit massig freien Ressourcen nutze) da dann immer alle 70 Values neu in die DB geschrieben werden.
Das ist einfach viel zu lang und ich suche eine Möglichkeit das zu beschleunigen.
Hättest Du da eine Idee?
Danke und Gruß
Matthias
Nimm doch
am 05.06.2014 - 20:28 Uhr
Nimm doch https://drupal.org/project/editablefields (letzte dev- Version)
Da kannst du direkt in der Profil Ansicht einzelne Felder ändern. Bei Manage Display findest du dann bei jedem Feld einen Formatter "bearbeitbar". Funktioniert auch mit Bildern, multiple fields, etc.
Hallo Glycid,Editablefileds
am 12.06.2014 - 18:59 Uhr
Hallo Glycid,
Editablefileds kenne ich schon. Das Problem hierbei ist leider, dass man immer nur einzelne Felder editieren kann - ich bräuchte aber die Möglichkeit dass man diverse Felder gruppieren kann (z.B. alle 6 Felder für Kontaktdaten). Dies kann man mit Editablefields leider nicht.
Ich habe vor einigen Tagen http://www.mysqltuner.pl genutzt um meine Datenbank fein-zu-tunen und die Ergebnisse können sich wirklich sehen lassen. Das Speichern eines "70-Felder-Nodes" dauerte vorher 10 - 15 Sekunden .... nach dem Tuning nur noch 5 Sekunden.
Das ist ein Unterschied wie fast von Tag zur Nacht und damit kann ich auf jeden Fall leben. Schon erstaunlich was ein paar Änderungen in der my.cnf ausrichten können.
Trotzdem danke für Deine Hilfe.