我运行一个 PHP 脚本,它从文件中读取数据行,分析它们并将它们一一插入到本地 MySQL 数据库中:
$mysqli = new mysqli($db_host, $db_user, $db_password, $db_db);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
} else {
/* As long as there is data in the file */
while(...) {
... // analyse each row (contained in an object $data)
/* Write it to the database table. */
$mysqli->query($data->getInsertQuery($db_table));
}
}
我有 4000 万行数据。前几百万个数据集的插入速度非常快,但在过去的 6 小时内只插入了 200 万个(我现在是 3000 万个),而且似乎越来越慢(到目前为止,还没有定义索引! )。
我想知道,这是否是将数据写入表的更有效方式。如果可能的话,我更喜欢没有额外(临时)文件的解决方案。