<?phph
$Q=mysql_query("SELECT case_number,boxes FROM master");
while($arr=mysql_fetch_array($Q))
{
$s=trim($arr['case_number']);
$noc=trim($arr['boxes']) ;
$e=($s+$noc-1);
for($x=$s;$s<=$e;$s++)
{
mysql_query("INSERT INTO master_break (case_number) VALUES('$s')");
$x++;
}
}?>
2
A
回答
0
使您在一次事务中的所有插入速度显着加快。
像
mysql_query('START TRANSACTION', $link);
for ($i = 0; $i < 20; ++$i)
{
mysql_query("INSERT INTO master_break (case_number) VALUES('$s')", $link);
}
mysql_query('COMMIT', $link);
看到http://www.slideshare.net/jwage/doctrine-2-not-the-same-old-php-orm幻灯片52
3
有一两件事你可以尝试做的是批量插入。 Insert syntax支持类似:
INSERT INTO master_break (case_number) VALUES (123), (456), ...
与越来越高的批量尝试,直到你找到适合你的。
1
Insert into master_break(case_number)
(select case_number from master)
如果您只需要独特的,添加DISTINCT:
Insert into master_break(case_number)
(select distinct case_number from master)
+0
唯一明智的答案。这里不需要使用慢循环。 (但是选择周围的括号不是必需的) – 2013-02-15 23:25:03
2
您可以在手册中读到这一点 - 尤其是,东西约insert....select,delayed,multiple row inserts,和禁用/启用键。
0
使用准备好的语句并将它们全部填入事务中。即:
$pdoHandler->beginTransaction();
for (whatever) {
$query = $pdoHandler->prepare(whatever);
$query->bindParam(whatever);
$query->execute();
}
try {
$pdoHandler->commit();
} catch(PDOException $e) {
do whatever;
}
这样,你就可以安全地从SQL注入。
相关问题
- 1. 如何提高SQL INSERT INTO速度
- 2. ORACLE SQL INSERT INTO - 如何前
- 3. 提高SQL查询速度
- 4. 提高SQL查询速度
- 5. INSERT VS INSERT INTO
- 6. 在session_destroy()INSERT INTO SQL
- 7. Insert into SQL Server timestamp
- 8. SQL INSERT INTO错误
- 9. SQL INSERT INTO选择
- 10. SQL INSERT INTO AUTO_INCREMENT列
- 11. SQL INSERT INTO FROM SELECT
- 12. insert 2 select sql result into one insert sql
- 13. 提高速度
- 14. 提高速度
- 15. 提高SQL Server中插入的速度
- 16. 如何提高INSERT INTO ... SELECT的锁定行为
- 17. 如何提高INSERT INTO选择等待表行为
- 18. 如何INSERT INTO JOIN
- 19. N'INSERT INTO与INSERT INTO
- 20. 如何提高此代码的速度?
- 21. MySQL INSERT INTO表与外键速度很慢
- 22. INSERT INTO VS SELECT INTO
- 23. 提高mysql速度?
- 24. 提高JavaScript速度
- 25. 提高速度openCover
- 26. 提高SQL语句的速度
- 27. SQL:什么是INSERT INTO #table?
- 28. 条件SQL INSERT INTO查询
- 29. SQL INSERT INTO SELECT语句
- 30. sql insert into,select,where语句
这段代码应该做什么? – cairnz 2011-04-04 08:30:05
我有两个表称为master和master_break。主表包含名为case_number和框的字段..我需要使用主值创建master_break表... 此查询消耗更多时间和内存。如何提高执行速度 – tharindu 2011-04-04 08:35:51