# REST API - Geschwindigkeit verbessern

**URL:** https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726
**Category:** Shopware 3.5
**Tags:** programming
**Created:** [3. Januar 2013 um 09:18 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726 "2013-01-03T09:18:03Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [3. Januar 2013 um 09:18 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/1 "2013-01-03T09:18:03Z")

</div>

Guten Morgen, wir sind zur Zeit am Testen und versuchen einen alten 3.5 Shop auf 4 zu bekommen. U.a. geht es um mehrere tausende Artikel. Nun braucht z.B. der alte Shop über die normale API ca. 130 Sekunden für 1000 Artikel ohne Bild. Hingegen brauche ich mit der REST API 52 Sekunden für nur 100 Artikel. Dabei spielt es keine Rolle ob mit oder ohne Bild. Die Geschwindigkeit bleibt gleich. Für uns ist das miserabel. Wie lange brauchen eure Imports? Wie kann ich das Ganze beschleunigen. So ist es einfach zu langsam.

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [3. Januar 2013 um 18:18 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/2 "2013-01-03T18:18:34Z")

</div>

Direkter Vergleich: Neue API = 200 Artikel =\> 60 Sekunden reiner Artikelimport ohne überprüfung ob dieser bereits besteht. Alte API = 200 Artikel =\> 18 Sekunden mit vorheriger Überprüfung ob der Artikel bereits besteht. Wie sind eure Erfahrungen. Würde mich echt interessieren. An Shopware :shopware: Wird da in den kommenden Updates evtl nachgebessert?

---

<div class="post-metadata">

### Author: ![markus.h](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@markus.h](https://forum.shopware.com/u/markus.h)
#### Post date: [7. Januar 2013 um 11:05 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/3 "2013-01-07T11:05:19Z")

</div>

Hi! Ja bei mir verhält es sich nicht anders: [post44313.html#p44313](http://forum.shopware.de/post44313.html#p44313) Ich importiere über eine XML-Datei. CSV konnte ich noch nicht testen. Manueller Import über das Backend ist für mich keine Lösung.

---

<div class="post-metadata">

### Author: ![leseaw](https://avatars.discourse-cdn.com/v4/letter/l/73ab20/32.png) [@leseaw](https://forum.shopware.com/u/leseaw)
#### Post date: [7. Januar 2013 um 11:20 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/4 "2013-01-07T11:20:12Z")

</div>

ja leider ist es ewig lahm ☹ Und es wird schlimmer je mehr Artikel drin sind. Und noch Varianten und noch mit Bild und man hat seine helle Freude ☹ Da hilft bald echt nur eine Wawi damit man weiss was geklappt hat und was nicht.

---

<div class="post-metadata">

### Author: ![markus.h](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@markus.h](https://forum.shopware.com/u/markus.h)
#### Post date: [7. Januar 2013 um 11:32 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/5 "2013-01-07T11:32:20Z")

</div>

Folgende Fehlermeldung bekomme ich etwa solange ich das memory\_limit nicht erhöhe. PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 32 bytes) in shopware-4/engine/Library/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php on line 107

---

<div class="post-metadata">

### Author: ![markus.h](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@markus.h](https://forum.shopware.com/u/markus.h)
#### Post date: [7. Januar 2013 um 12:02 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/6 "2013-01-07T12:02:26Z")

</div>

Die CPU-Auslastung vom Webserver liegt beim Import permanent zwischen 94 und 100% ` PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 20 0 644m 441m 4268 R 97 11.2 27:36.01 apache2 ` Der MySQL Server tut dabei aber gar nichts.

---

<div class="post-metadata">

### Author: ![leseaw](https://avatars.discourse-cdn.com/v4/letter/l/73ab20/32.png) [@leseaw](https://forum.shopware.com/u/leseaw)
#### Post date: [7. Januar 2013 um 12:17 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/7 "2013-01-07T12:17:29Z")

</div>

wenn du jetzt noch htop machst siehste das er irgendwas im phpcode rumwurschtelt

---

<div class="post-metadata">

### Author: ![markus.h](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@markus.h](https://forum.shopware.com/u/markus.h)
#### Post date: [7. Januar 2013 um 13:48 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/8 "2013-01-07T13:48:25Z")

</div>

Da ich nicht denke, dass es eine baldige Lösung für dieses Problem gibt, werde ich versuchen die Daten direkt in die Datenbank zu importieren und dort auch zu aktualisieren. Ich melde mich bei Gelingen 😉

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [7. Januar 2013 um 14:01 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/9 "2013-01-07T14:01:11Z")

</div>

Da hätte ich evtl. auch interesse. Wahrscheinlich ist das aber nicht Ohne. 60t Artikel und mehr… mehrere Subshops mehrere Kundengruppen mehrere Sprachen Variantenartikel Das könnte alles zusammen kritisch werden, mit einem direkten Import in die DB.

---

<div class="post-metadata">

### Author: ![markus.h](https://avatars.discourse-cdn.com/v4/letter/m/a587f6/32.png) [@markus.h](https://forum.shopware.com/u/markus.h)
#### Post date: [9. Januar 2013 um 16:00 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/10 "2013-01-09T16:00:49Z")

</div>

So also ich habe nun die ersten Ergebnisse: Ein Import/Update von 7000 Artikel (mit einem Preis, Zusatzfeldern und Filtereigenschaften) benötigt bei mir nun “nur” 22 Minuten. Dabei verwende ich aber die Datenbankanbindung über Shopware, also Shopware()-\>Db(). Dies stellt auch sicher, dass man keinen Quirks mit den Keys in den Tabellen bekommt, was gerade bei den Filter-Eigenschaften geholfen hat. Wie ich über diese Variante Bilder in die Datenbank bekomme ist mir noch unklar. Ich werde jedoch einen anderen Weg gehen und die Bilder in 4 Größen auf einem Imageserver ablegen und im Template direkt referenzieren á [http://server/bilder/klein/artikelnummer.jpg](http://server/bilder/klein/artikelnummer.jpg) Nun werde ich noch Übersetzungen importieren. Dabei habe ich jedoch etwas Angst bekommen, da die s\_articles\_translations nicht alle 20 attr Felder aufweist. Wurden da Felder schlicht nicht angelegt? LG, Markus

---

<div class="post-metadata">

### Author: ![farbplatoon](https://avatars.discourse-cdn.com/v4/letter/f/977dab/32.png) [@farbplatoon](https://forum.shopware.com/u/farbplatoon)
#### Post date: [5. Februar 2013 um 19:47 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/11 "2013-02-05T19:47:31Z")

</div>

Bei 60t Artikeln ist mM nach wirklich keine Doctrine gestützte Lösung mehr eine gute Wahl. Da solltest du dann tatsächlich raw sql wählen und die Statements schön auf Queues aufteilen. Ich würde allgemein Importprozesse immer als Terminalanwendungen laufen lassen und der Imageprozess sollte immer losgekoppelt und asynchron laufen.

---

<div class="post-metadata">

### Author: ![leseaw](https://avatars.discourse-cdn.com/v4/letter/l/73ab20/32.png) [@leseaw](https://forum.shopware.com/u/leseaw)
#### Post date: [5. Februar 2013 um 20:24 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/12 "2013-02-05T20:24:12Z")

</div>

geht bei euch jedes mal die sitemap.xml zu erstellen? und was ich auch nicht verstehe, warum muss er immer jedes Feld durchrappeln ohne Rücksicht auf Verlust. Es wäre schön wenn man sagen könnte welche Variantenfelder überhaupt befüllt sind, das würde schon ne Menge Power sparen.

---

<div class="post-metadata">

### Author: ![farbplatoon](https://avatars.discourse-cdn.com/v4/letter/f/977dab/32.png) [@farbplatoon](https://forum.shopware.com/u/farbplatoon)
#### Post date: [6. Februar 2013 um 14:35 UTC](https://forum.shopware.com/t/rest-api-geschwindigkeit-verbessern/10726/13 "2013-02-06T14:35:53Z")

</div>

Also nach Rest Standart ist es schon sinnvoll und so gedacht auch bei jedem PUT Request den kompletten Datensatz mitzuliefern. Was würdest du denn sonst machen, wenn du zB bei einigen Artikeln nur einen Parameter rauslöschen willst, dann müsste es ja noch eine Methode geben 🙂 RESTful arbeitet halt sehr Strikt nach HTTP Standart.
