您可以将一个大 xml 拆分为几个较小的文件吗?
我会将 37000 个项目排成几批并一个接一个或异步处理它们。我在 PHP 中做过几次。像这样的工作更好的语言是 Phyton 或 RoR。
但是,请尝试创建批次的项目。
关于存储数据,我在 MySQL 中使用 CSV 批量插入。
我使用此函数将字符串转换为 CSV 格式:
<?php
function convertStrToCsv($data, $delimiter = ';', $enclosure = '"')
{
ob_start();
$fp = fopen('php://output', 'w');
fputcsv($fp, $data, $delimiter, $enclosure);
fclose($fp);
return ob_get_clean();
}
…然后我将函数输出保存为文件,最后使用此查询将 CSV 数据保存在数据库中:
LOAD DATA LOW_PRIORITY LOCAL INFILE '$file' IGNORE INTO TABLE `$table` CHARACTER SET utf8 FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\\n';
阅读有关此的更多信息:
快乐编码!