gpt4 book ai didi

php - 海量数据导入,Wordpress php & mysql

转载 作者:行者123 更新时间:2023-11-30 23:24:59 25 4
gpt4 key购买 nike

我在 2 个不同的服务器上有 2 个数据库。源数据库是一个海量的房地产数据库,第二个是Wordpress数据库。我必须将数据从源导入到 Wordpress 数据库的帖子和 postmeta 表。

目前,我正在从源数据库中提取所有内容,然后遍历这些结果以将它们插入到 posts 表中,并使用另一个嵌套查询使用 post insert 中的 insert id 将每个字段作为元值插入。换句话说,它是一个内存消耗者。

我的问题是,是否可以改进下面的循环,以便没有那么多单独的插入行?或者有没有人有任何建议可以使它更快/不那么草率?

// SOURCE DB
$query = "select $fields from listings where data_id = 'B'";

$result = mysql_query($query);

// WORDPRESS DB
while ($row = mysql_fetch_assoc($result)) {
$query2 = "insert into wp_posts (post_author, post_content, post_title, post_status, comment_status, ping_status, post_name, post_type) values";
$query2 .= " ('1', '" . mysql_real_escape_string($row['remarks']) . "', '{$row['mls_acct']}', 'publish', 'closed', 'closed', '{$row['mls_acct']}', 'properties')";

$result2 = mysql_query($query2);

$id = mysql_insert_id();

foreach ($row as $key => $val)
{
$query3 = "insert into wp_postmeta (post_id, meta_key, meta_value) values ";

$query3 .= "('$id', '$key', 'mysql_real_escape_string($val)')";

$result3 = mysql_query($query3);
}
}

最佳答案

对此,我的第一个想法是分批插入记录,而不是一次插入一个记录。所以你的内部插入最终会是这样的:

insert into wp_postmeta (post_id, meta_key, meta_value) values
(1, meta_key_1, meta_value_1),
(1, meta_key_2, meta_value_2),
(1, meta_key_3, meta_value_3),
(1, meta_key_4, meta_value_4),
(1, meta_key_5, meta_value_5),
(1, meta_key_6, meta_value_6),
(1, meta_key_7, meta_value_7),
...
(1, meta_key_100, meta_value_100);

我不确定每批的最佳记录数是多少,但我想你明白了。

关于php - 海量数据导入,Wordpress php & mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13805217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com