Heim > Backend-Entwicklung > PHP-Tutorial > Wie können Transaktionen MySQLi-INSERT-Vorgänge mit mehreren Werten erheblich beschleunigen?

Wie können Transaktionen MySQLi-INSERT-Vorgänge mit mehreren Werten erheblich beschleunigen?

DDD
Freigeben: 2024-12-17 19:38:11
Original
265 Leute haben es durchsucht

How Can Transactions Significantly Speed Up MySQLi INSERT Operations with Multiple Values?

Effiziente und sichere INSERT-Operationen in MySQLi mit mehreren Werten

Das Einfügen großer Datenmengen in eine Datenbank kann eine Leistungsherausforderung sein, insbesondere wenn Es geht darum, die Sicherheit gegen SQL-Injection-Angriffe aufrechtzuerhalten. PHP und MySQLi bieten verschiedene Ansätze, um dieses Problem anzugehen und gleichzeitig die Datenintegrität sicherzustellen.

Der bereitgestellte Code verwendet einen unkomplizierten Ansatz zum Vorbereiten und Binden von Parametern innerhalb einer Schleife für jeden Wert im Array. Allerdings kann es bei dieser Methode aufgrund des sich wiederholenden Prozesses zu Leistungsproblemen bei großen Datensätzen kommen.

Eine empfohlene Technik ist die Nutzung von Transaktionen. Eine Transaktion fasst mehrere Vorgänge in einer einzigen Einheit zusammen und stellt so sicher, dass sie alle oder gar keine angewendet werden. Durch das Einschließen der Einfügeabfragen in eine Transaktion, wie im optimierten Code gezeigt:

$mysqli->query("START TRANSACTION");
foreach ($array as $one) {
    $stmt->execute();
}
$mysqli->query("COMMIT");
Nach dem Login kopieren

können wir erhebliche Leistungsverbesserungen erzielen. Transaktionen reduzieren den Aufwand für die individuelle Ausführung jeder Abfrage, was zu schnelleren Ausführungszeiten führt.

Darüber hinaus minimiert der optimierte Code die Anzahl der Aufrufe von Prepare() und bind_param(), indem diese Vorgänge außerhalb der Schleife ausgeführt werden. Dies reduziert die Verarbeitungszeit weiter.

Ergebnisse des Leistungstests

Um die Wirksamkeit dieser Optimierungen zu demonstrieren, wurde ein Test mit 10.000 Iterationen auf einem Webserver durchgeführt. Die Ergebnisse waren:

  • Ohne Transaktion: 226 Sekunden.
  • Mit Transaktion: 2 Sekunden.

Die Verwendung von Transaktionen führte zu einer zweifachen Reihenfolge von Geschwindigkeitssteigerung um ein Vielfaches, was das Potenzial für eine verbesserte Leistung beim Umgang mit großen Datenmengen zeigt.

Das obige ist der detaillierte Inhalt vonWie können Transaktionen MySQLi-INSERT-Vorgänge mit mehreren Werten erheblich beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage