Php 快速更新大表查询
我有一个相当大的数据库,它是使用csv“加载数据填充”方法导入的。 但有些单元格需要进行操作,不幸的是,在导入过程中我无法进行操作。我必须在以后再做,因为PHP更容易使用,更不用说还有其他需要更改的表单元格,这是mysql命令无法做到的。 “电话”单元就是此类操作的一个例子。我必须中断电话号码,然后分别更新同一行的两个不同单元格。 例如:Php 快速更新大表查询,php,mysql,mysqli,php-7,Php,Mysql,Mysqli,Php 7,我有一个相当大的数据库,它是使用csv“加载数据填充”方法导入的。 但有些单元格需要进行操作,不幸的是,在导入过程中我无法进行操作。我必须在以后再做,因为PHP更容易使用,更不用说还有其他需要更改的表单元格,这是mysql命令无法做到的。 “电话”单元就是此类操作的一个例子。我必须中断电话号码,然后分别更新同一行的两个不同单元格。 例如: $myQ = my_db_query("SELECT companyId, Telephone FROM companies WHERE 1"); while
$myQ = my_db_query("SELECT companyId, Telephone FROM companies WHERE 1");
while ($row = my_db_fetch_array($myQ))
{
if($row["Telephone"] != ""){
$Telefon_area = "";
$Telefon_num = "";
$pieces = explode(" ", $row["Telephone"]);
$Telefon_area = trim( $pieces[0] );
$Telefon_num = trim( $pieces[1] );
my_db_query("UPDATE companies SET `Telefon_area` = '$Telefon_area', `Telefon_num` = '$Telefon_num' WHERE `companyId` = ".$row["companyId"]);
}
}
这种方法面临的问题是(尽管我已经为电话列编制了索引),但速度非常慢,因为我正在更新1.5mil条目
有更快的方法吗?您可以编写SQL插入脚本,而不是更新每一行,然后截断表并通过插入脚本插入所有新值。Insert比update快。嗯,这是个好主意,但我现在使用的导入器将来可以用来用新数据进一步更新表。我在示例中所做的选择可以是在值之间进行选择,因此通过更新,我可以只更新需要的行,而保留其他行不变。这就是为什么我不想删除列并导入新列的原因。。但是好主意!您可以编写一个SQL插入脚本,而不是更新每一行,然后截断表并通过插入脚本插入所有新值。Insert比update快。嗯,这是个好主意,但我现在使用的导入器将来可以用来用新数据进一步更新表。我在示例中所做的选择可以是在值之间进行选择,因此通过更新,我可以只更新需要的行,而保留其他行不变。这就是为什么我不想删除列并导入新列的原因。。但是好主意!