CodeIgniter großen Stapel legen

Ich bin derzeit erstellen Sie eine batch-Skript, dass Anrufe auf mehrere PHP-Skripte (die Nutzung von CodeIgniter) zu ziehen, die Daten aus einer DB, die Arbeit mit den Ergebnissen und legen Sie das Ergebnis in einer anderen DB. Um zu beginnen, ich weiß das ist vielleicht nicht das beste Werkzeug für den job, aber Sie haben zu tun, jetzt.
Aber zurück zum Thema, das script läuft gut und die performance ist ziemlich gut, außer für eine Methode. Es zieht Daten aus der ersten DB und fügt es in die zweite DB. Es ist eine Tabelle, die hat etwa 20 Spalten und 35000 Zeilen.

Ich bin mit einem einfachen $this->db->insert_batch('tablename', $insertdata); - einfügen-Funktion diese Ergebnisse, aber irgendwie ist das Skript dauert etwa 15 Minuten zu führen...

Frage ist, wie, dieses Verfahren zu optimieren?

Vielen Dank im Voraus

BEARBEITEN

Hier ist die Abfrage, die ich verwenden, um die Tabelle zu erstellen, die auf die zweite DB, die DB, die die Daten wird eingefügt.

CREATE TABLE IF NOT EXISTS `invoices` (
    `invoice_number` varchar(40) NOT NULL,
    `shippinglist_number` varchar(40) DEFAULT NULL,
    `shippinglist_line` varchar(255) DEFAULT NULL,
    `customer_id` varchar(5) NOT NULL,
    `deptor` varchar(5) NOT NULL,
    `vat_number` int(255) DEFAULT NULL,
    `invoice_date` date NOT NULL,
    `expire_date` date NULL DEFAULT NULL,
    `currency_code` varchar(10) NOT NULL,
    `subtotal` decimal(19,4) NOT NULL,
    `vat` decimal(19,4) NOT NULL,
    `total` decimal(19,4) NOT NULL,
    `qty` int(10) NOT NULL,
    `partcode` varchar(255) NOT NULL,
    `description` text,
    `price` decimal(19,4) NOT NULL,
    `pieces_per` int(10) NOT NULL,
    `article_customer` varchar(255) DEFAULT NULL,
    `reference_customer` varchar(255) DEFAULT NULL,
    `sales_line_1` text,
    `sales_line_2` text,
    `sales_line_3` text,
    `memo` text,
    KEY `invoice_number` (`invoice_number`,`customer_id`,`deptor`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Und die Abfrage ist ein ganz normaler insert -, aber die 35000 Zeilen gehackt in 100 Zeile setzt.

  • Bitte posten Sie Ihre Abfrage und die Tabelle schema.
  • Wie viele Indizes und Schlüssel werden erstellt auf Ihrem Tisch? Es sollte nicht so viel Zeit?
InformationsquelleAutor Crinsane | 2012-07-11
Schreibe einen Kommentar