|
|
|
ขอคำแนะนำ ติดปัญหาเวลา insert ข้อมูลจำนวน 500 รายการ ใช้เวลานานมาก กว่า 30 นาที มีวิธีลดเวลาไหมครับ |
|
|
|
|
|
|
|
ขอคำแนะนำ ติดปัญหาเวลา insert ข้อมูลจำนวน 500 รายการ ใช้เวลานานมาก กว่า 30 นาที มีวิธีลดเวลาไหมครับ โค๊ตที่ใช้แบบนี้ครับ
<?php
ob_start();
session_start();
mysql_connect("localhost","bpworld_root","root");
mysql_select_db("bpworld_opencart");
mysql_query("SET NAMES UTF8");
$strSQL1 = "SELECT * FROM user WHERE userid = '".$_SESSION['userid']."' ";
$objQuery1 = mysql_query($strSQL1);
$objResult = mysql_fetch_array($objQuery1);
echo $_POST["toshop"];
//เช็คว่าโอนสินค้าหรือยังถ้าโอนแล้วสั่งให้ออก
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
$strCHECK = "SELECT * FROM checkstock WHERE shopcode = '".$_GET["shopcode"]."' AND productid = '".$_POST["productid$i"]."'";
$objQueryCHECK = mysql_query($strCHECK);
$objResultCHECK = mysql_fetch_array($objQueryCHECK);
break;}
if($objResultCHECK["status"] == 'Y')
{
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";
echo "<script>alert('รายการนี้ได้โอนสินค้าเข้าคลัง BP ก่อนหน้านี้แล้ว');</script>";
echo "<meta http-equiv='refresh' content='3 ;url= waittranfer.php?'>";
}
else
{
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
$total= $_POST["qty$i"]*$_POST["price$i"];
ini_set('max_execution_time', 0); //300 seconds = 5 minutes
$strSQL = "
INSERT INTO stdrecord (date,docnum,shopcode,productid,stdprice,stdqty,total,type,who)
VALUES
('".date("Y-m-d H:i:s")."','".$_GET["docnum"]."','".$_GET["shopcode"]."','".$_POST["productid$i"]."','".$_POST["price$i"]."','".$_POST["qty$i"]."','".$total."','r','".$_POST["toshop"]."')
";
mysql_query($strSQL) or die(mysql_error());
$result = mysql_query("update product set qty = qty + '".$_POST["qty$i"]."' where ProductID = '".$_POST["productid$i"]."'");
$resultms = mysql_query("update ms set actqty = actqty - '".$_POST["qty$i"]."' where shopcode='".$_GET["shopcode"]."' AND productid = '".$_POST["productid$i"]."'");
$strCHECKms = "SELECT * FROM ms WHERE shopcode = '".$_POST["toshop"]."' AND productid = '".$_POST["productid$i"]."'";
$objQueryCHECKms = mysql_query($strCHECKms);
$objResultCHECKms = mysql_fetch_array($objQueryCHECKms);
if($objResultCHECKms["productid"] !="")
{
$resultoshop = mysql_query("update ms set actqty = actqty + '".$_POST["qty$i"]."' where shopcode='".$_POST["toshop"]."' AND productid = '".$_POST["productid$i"]."'");
}
else
{
//insert new to ms
$strSQLnew = "
INSERT INTO ms (shopcode,productid,actqty,price)
VALUES
('".$_POST["toshop"]."','".$_POST["productid$i"]."','".$_POST["qty$i"]."','".$_POST["price$i"]."')
";
mysql_query($strSQLnew) or die(mysql_error());
}
$resultcheckstock = mysql_query("update checkstock set status = 'Y' where shopcode='".$_GET["shopcode"]."' AND productid = '".$_POST["productid$i"]."'");
}
$docnum=$_GET["docnum"];
$shop=$_POST["toshop"];
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";
echo "<script>alert('ดำเนินการโอนสินค้าเข้าคลัง $shop เรียบร้อย เลขที่ $docnum');</script>";
echo "<meta http-equiv='refresh' content='3 ;url= waittranfer.php?'>";
}
mysql_close();
//session_destroy();
//$urlback = $patern.$link.$title.$link2.$shopname;
//header("location:waittranfer.php");
?>
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2016-03-01 14:08:06 |
By :
sranuwat |
View :
673 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ok ได้แลวครับ ใช้วิธีหนด index ให้กับตารางทุกตารางครับ
|
|
|
|
|
Date :
2016-03-01 15:42:07 |
By :
sranuwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูพวก PK ด้วยครับ
|
|
|
|
|
Date :
2016-03-01 16:30:30 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PK คืออะไรครับ
|
|
|
|
|
Date :
2016-03-01 16:45:06 |
By :
sranuwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ PRIMARY KEY ใหมครับ ผมกำหนด index คนละตัวกับ PRIMARY KEY ไม่น่าจะมีปัญหาใช่ไหมครับ
|
|
|
|
|
Date :
2016-03-01 16:47:34 |
By :
sranuwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
การ insert ยิ่งไม่มี index ยิ่งเร็ว
แต่ที่ช้า เพราะมีการ update คั่นอยู่ ซึ่งการ update ต้องอ้างอิง index ถึงจะเร็ว
PK = Primary Key
FK = Foreign Key
UK = Unique Key
|
ประวัติการแก้ไข 2016-03-01 18:08:21
|
|
|
|
Date :
2016-03-01 18:06:51 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|