什么是复制mysql行的最快方法?

时间:2013-08-29 13:07:04

标签: php mysql copy row

我必须在加载页面之前复制一些mysql行。我试图将它复制到临时表,如下所示:

 mysqli_query($con,"CREATE TEMPORARY TABLE tmp_tbl SELECT * FROM subject WHERE ID='$ID'");
 mysqli_query($con,"UPDATE tmp_tbl SET ID=NULL");
 mysqli_query($con,"INSERT INTO subject SELECT * FROM tmp_tbl");
 mysqli_query($con,"DROP TABLE tmp_tbl");`

效果很慢。只是以常规丑陋的方式复制它会更快吗?

编辑:当您想要更新多行时,可以执行以下操作:

 mysqli_query($con,"INSERT INTO subject (Primary,AnotherID, COLB, COLC)
SELECT NULL,'$a', COLB, COLC
FROM subject WHERE AnotherID='$someID'");

您必须在主键中放置null,否则它不起作用

1 个答案:

答案 0 :(得分:2)

你当然可以加快速度,但总体速度将取决于subject表中的行数 - 在你的所有查询都加倍之后。

对于此示例,我假设subject表列为IDColAColBColC,{{1} }是一个自动递增的主键:

ID

关键是在插入/选择时指定除 INSERT INTO subject (ColA, ColB, ColC) SELECT ColA, ColB, ColC FROM subject 之外的每一列