0

リモート サーバー上の SQLite データベースに CSV データを挿入するための効率的な方法を探しています。

PHPを使用する必要があります。私は SQLite3 を使用しているので、PDO を使用する必要があります (sqlite_query は機能しません)。

CSV はサーバー側にあり、100000 行以上 (50MB 以上のファイルサイズ) があります。

質問: これよりも高速な PHP の方法はありますか?

for (/* each row, 100.000 rows */)
{
    $a = 'something';
    $b = 'something';
    $query = $link->prepare("INSERT INTO user_info (a, b) VALUES (?, ?)");
    $query->bindParam(1, $a);
    $query->bindParam(2, $b);
    $query->execute();
}

私のSQLファイルは同じディレクトリにあります。

.importコマンドについて読んだことがありますが、PDO でそれを使用する方法がわかりません(prepareファイル パスはどのように見えるべきですか?)。

PDO と SQLite は初めてです。

4

2 に答える 2

0

まあ、PDO ドライバーを介して使用できる SQLite を使用した一括アプローチがあるかどうかはわかりませんが、ループごとに同じステートメントを再準備しています。

これはおそらくもう少し効率的です:

$query = $link->prepare("INSERT INTO user_info (a, b) VALUES (?, ?)");
for (/* each row, 100.000 rows */)
{
    $a = 'something';
    $b = 'something';

    $query->bindParam(1, $a);
    $query->bindParam(2, $b);
    $query->execute();
}
于 2013-01-11T18:11:03.693 に答える