kostenloser Webspace werbefrei: lima-city


MySQL multi-update

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    agicore

    agicore hat kostenlosen Webspace.

    Guten Morgen allerseits =)

    Ich habe eine reine Interessensfrage bezüglich "max_updates".
    Bin vor kurzem auf den kleinen Trick gestoßen, wie man mit nur einer Abfrage mehrere Datensätze updaten kann (http://stuporglue.org/update-multiple-rows-at-once-with-different-values-in-mysql/).

    Mich würde nur mal interessieren wie das gehandhabt wird. Wird das von MySQL als ein Update oder wie normal auch als drei Updates gezählt? =)

    Oder was ist sonst der Vorteil einer solchen Abfrage?
    denn wenn ich 10 Datensätze mit einer Abfrage lösen kann und das sinnvoller ist in Sachen performance, dann überarbeite ich meine Sachen und benutz lieber dieses Multi-Update anstatt meine bisherigen Schleifen =O

    LG
    Agita

    Beitrag zuletzt geändert: 7.4.2014 2:38:26 von agicore
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Denke es wär schneller, weil dann nur eine Transaktion und ein Commit gemacht werden müssen.
    Außerdem muss dann nur einmal eine Verbindung zur Datenbank aufgebaut werden und nur einmal
    ein Statement abgeschickt werden.

    Ob intern noch irgendwelche Optimierungen vorgenommen werden, weiß ich nicht.


    Sehe grad, dass da mit CASE gearbeitet wird. Kommt bestimmt drauf an, aber denke, dass es nicht immer gut ist
    Semantik in den Statements zu haben.
    Bei Änderungen muss das Statement mit angepasst werden und ob du bzw. ein anderer Entwickler
    dann noch wisst, dass da im Statement noch iwelche Case-Abfragen sind?
  4. Mit mysqli multi_query wäre es eine bessere Lösung, da mysql mit PHP 6 eh ausstirbt. Und dort ist es dann definitiv schneller.
  5. nachdem ich die tab nachgebildet habe und 2 unterschiedliche tests (mit CASE und einzelne UPDTEs) ausgeführt habe, kann ich dazu nur sagen, anbetracht der ergebnisse der zeitmessung, die CASE-lösung ist nur ein UPDATE.

    all-in1 schrieb:
    Mit mysqli multi_query wäre es eine bessere Lösung, da mysql mit PHP 6 eh ausstirbt. Und dort ist es dann definitiv schneller.
    du magst volkommen rechthaben, aber von der mysql-konsole wird es dabei bleiben. und was mit der cli version von php passieren wird, ist auch noch abzuwarten. ich habe in die richtung noch nichts erfahren (können).

    ich kann es mir nur sehr schwer vorstellen, dass mysqld nach PHP5 tanzen wird. du meintest ja mit 'mysql' mysql API. ich meinte den mysql server (daher mysqld). (beim te ist seine interpretation nicht unbeding herauszuhören.)
  6. czibere schrieb:
    nachdem ich die tab nachgebildet habe und 2 unterschiedliche tests (mit CASE und einzelne UPDTEs) ausgeführt habe, kann ich dazu nur sagen, anbetracht der ergebnisse der zeitmessung, die CASE-lösung ist nur ein UPDATE.


    d.h. dass die Case-Variante schneller war?
    Oder wie ist das jetzt zu verstehen.


    Lg

    Beitrag zuletzt geändert: 8.4.2014 22:10:43 von seth93
  7. seth93 schrieb:
    czibere schrieb:
    nachdem ich die tab nachgebildet habe und 2 unterschiedliche tests (mit CASE und einzelne UPDTEs) ausgeführt habe, kann ich dazu nur sagen, anbetracht der ergebnisse der zeitmessung, die CASE-lösung ist nur ein UPDATE.

    d.h. dass die Case-Variante schneller war?
    Oder wie ist das jetzt zu verstehen.


    Lg
    die CASE-variante ist ~3x schneller. an sich logisch. 3 updates werden in einem ruck durchgeführt.

    Beitrag zuletzt geändert: 8.4.2014 22:26:41 von czibere
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!