Codeigniter Batch-Einsatz Leistung

8

Setzt $this->db->insert_batch(); mit einer Tabellenverbindung ein oder fügt es jede Zeile separat ein, was Overhead beim Öffnen von Verbindungen verursacht?

    
el_pup_le 26.12.2011, 13:58
quelle

3 Antworten

11

Aus der Dokumentation des Code-Zünders insert_batch machen Sie diese Art von Dingen

%Vor%

Also würde es nur eine Abfrage mit allen Werten erzeugen, normalerweise so viel schneller als separate Einfügungen.

    
RageZ 26.12.2011, 14:02
quelle
6

Um Ihre Frage zu beantworten: Es verwendet eine Verbindung.

    
phirschybar 26.12.2011 14:04
quelle
1

Tatsächlich ist die @RageZ-Antwort basierend auf dem Dokument nicht immer korrekt. Weil es vollständig auf der Anzahl der Elemente basiert, die Sie einfügen möchten. Wenn Sie codeigniter insert_batch() code betrachten, können Sie sehen, dass sie Batch-Inserts in 100 Elemente zerlegen.

%Vor%

Das bedeutet, dass es sich bei Ihren Werten um Slice-to-100s-Einfügungen handelt. Wenn Sie den echo $sql -Teil auskommentieren, können Sie sehen, wie er aussieht, wenn Sie den Einfüge-Stapel für 101 Elemente verwenden. Basierend auf Ihren Verbindungspräferenzen kann mehr als eine Verbindung zum Einfügen in db benötigt werden.

    
sobhan 13.02.2014 18:15
quelle

Tags und Links