我想用这个php代码一次插入1000多条记录,插入超过1000条记录需要很长时间。这可以更快吗?
$original = $_POST['contact'];
$output = array();
reset($original);
foreach($original as $value) {
if(strpos($value, ',') === false)
$output[] = $value; // add value straight away if it doesn't need splitting
else {
//split string by comma and trim whitespace from pieces
$bits = explode(',', $value);
foreach($bits as $bit) {
$output[] = trim($bit);
}
}
//now loop through $output array to get desired result:
foreach($output as $value) {
echo $value."<br>$msg";
$query = "INSERT INTO inbox (
check_file,
onderwerp,
fromm,
post,
owner,
date
) VALUES (
'$check',
'$onderwerp',
'$session->username',
'$msg',
'$value',
'$date'
)";
mysqli_query($database->connection,$query) or die (mysqli_error());
$query = "INSERT INTO outbox (
check_file,
onderwerp,
owner,
post,
ontvanger,
date
) VALUES (
'$check',
'$onderwerp',
'$session->username',
'$msg',
'$value',
'$date'
)";
mysqli_query($database->connection,$query) or die (mysqli_error());
}
答案 0 :(得分:2)
使用mysqls多插入函数。您可以,而不是独立执行每个查询,将所有INSERTS编译为单个字符串:
insert into XXX VALUES (1, 2, 'query_1'), (3, 4, 'query_2'), (3, 5, 'query_3')
这将大大提高插入速度并减少不必要的网络流量。
答案 1 :(得分:1)
这是我的两分钱:
有很多方法可以将大量数据加载到MYSQL中,这里有两个!
方法1
像您一样添加每个记录程序。你可以做些什么来改善它,至少使用MySQLi语句(准备一个)然后绑定你的变量,它会快得多。
方法2
将输入读入已处理的格式化输出文件,并使用mysql LOAD语句将文件直接加载到MySQL中。
这些还有很多其他方法,但我首先尝试#1,因为你可能不想重写所有内容,如果你还需要更高的速度,那么#2之后。
祝你好运