我目前正在創建一個批處理腳本,調用多個PHP腳本(即使用笨)從一個數據庫,對結果的工作拉的數據和結果插入另一個數據庫。首先,我知道這可能不是這項工作的最佳工具,但它現在必須做。 但是回到主題,腳本運行良好,性能非常好,除了一種方法。它從第一個數據庫中提取數據,並將其插入到第二個數據庫中。這是一張大約有20列和35000行的表格。笨大批量插入
我用一個簡單的$this->db->insert_batch('tablename', $insertdata);
功能插入這些結果,但不知何故,該腳本大約需要15分鐘來執行......
的問題是,如何優化這一進程?
在此先感謝
編輯
這裏是我用來在第二DB創建表的查詢,數據庫的數據被插入。
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;
而查詢只是一個正常的插入,但35000行被切成100行集。
請發佈您的查詢和表架構。 – 2012-07-11 05:52:02
桌子上創建了多少個索引和鍵?它不應該花這麼多時間? – 2013-01-15 07:29:01