作者 主題: MYSQL PDO INSERT 很慢  (閱讀 6333 次)

0 會員 與 1 訪客 正在閱讀本文。

chaohsin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
MYSQL PDO INSERT 很慢
« 於: 2012-12-01 16:40 »
這幾天安裝了UBUNTU SREVER 1210
並架設了 MYSQL SERVER
執行
<?php
   include("libs/PDO.php");
   $stmt=$dbh->prepare("insert into vb_invoice (`invoice_customer_id`) values (:invoice_customer_id)");
   for ($i=1;$i<=2000;$i++){
      $stmt->execute(array(":invoice_customer_id" =>($i%100)+5 ));
      $id = $dbh->lastInsertId();
      echo $id."&nbsp";
   }
?>
居然花了快3分鐘

TABLE 結構如下
-- phpMyAdmin SQL Dump
-- version 3.4.11.1deb1
-- http://www.phpmyadmin.net
--
-- 主機: localhost
-- 產生日期: 2012 年 12 月 01 日 16:36
-- 伺服器版本: 5.5.28
-- PHP 版本: 5.4.6-1ubuntu1.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 資料庫: `Sanfong`
--

-- --------------------------------------------------------

--
-- 表的結構 `vb_invoice`
--

CREATE TABLE IF NOT EXISTS `vb_invoice` (
  `invoice_no` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '出貨單號碼',
  `invoice_customer_id` int(10) unsigned NOT NULL COMMENT '出貨單客戶ID',
  `invoice_cargo_date` date DEFAULT NULL COMMENT '出貨單出貨日期',
  `invoice_account_date` date DEFAULT NULL COMMENT '出貨單結帳日期',
  `invoice_basis_no` int(10) unsigned NOT NULL DEFAULT '0',
  `invoice_total` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '出貨單總金額',
  `invoice_total_actual` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '應收總金額',
  `invoice_warehouse_id` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '出貨倉庫ID',
  `invoice_status` enum('出車配送途中','收訖確認轉應收','作廢') COLLATE utf8_unicode_ci NOT NULL DEFAULT '出車配送途中' COMMENT '出貨單狀態',
  PRIMARY KEY (`invoice_no`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6047 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

剛好有2台都裝一樣的系統
都測了一下最快也要1分45秒
除了PHP 上傳限制改成128M 並沒有動太多其他參數
真的太慢了
哪位大大幫幫忙

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
Re: MYSQL PDO INSERT 很慢
« 回覆 #1 於: 2012-12-04 11:05 »
« 上次編輯: 2012-12-04 11:11 由 micmic3 »

asako

  • 活潑的大學生
  • ***
  • 文章數: 242
    • 檢視個人資料
Re: MYSQL PDO INSERT 很慢
« 回覆 #2 於: 2013-01-05 06:58 »
試一下 程式跑完再 commit

chaohsin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
Re: MYSQL PDO INSERT 很慢
« 回覆 #3 於: 2013-01-07 10:43 »
樓上正解
已解決
Thanks