dedlfix: mysqli: mehrere queries auf einmal

Beitrag lesen

Tach!

bietet mysqli in PHP die Möglichkeit, eine Vielzahl an INSERT/REPLACE queries auf einmal an den Datenbankserver zu übergeben.

Wenn das eine Frage sein soll, dann kennst du die Antwort offensichtlich schon: mysqli_multi_query().

Wenn ich z.B. 5000 REPLACE-Anweisungen in phpmyadmin einfüge, ist der DB-Server sehr schnell fertig.

Welche Extension nimmt dein PMA denn? Auf der Startseite sollte er es erzählen (wenn es nicht wegkonfiguriert wurde).

Wenn ich aber dieselben Anweisungen mit $mysqli->multi_query($queries); do{}while($mysqli->next_result()); dauert es deutlich länger.
Was läuft hier schief oder wie geht das schneller?

Ich kann mir nur vorstellen, dass er die Next-Result-Schleife nicht ausführt. Bau doch mal in nicht-das-erste Statement einen Fehler ein und schau, ob der PMA den anzeigt oder nicht (nur sinnvoll, wenn er mysqli verwendet).

Für eine Vielzahl gleichartiger Statement kann man auch Prepared Statements nehmen. Ob das allerdings schneller oder gar noch langsamer ist - schließlich hat PHP dabei viele Funktionsaufrufe auszuführen - kann ich nicht sagen.

dedlfix.