php - 我应该限制或减少我的数据库查询吗?

标签 php mysql database rate-limiting

我正在创建一个 PHP 脚本,用于将一些数据从文本文件导入到 MySQL 数据库中。这些文本文件非常大,平均一个文件有 10,000 行,每行对应我想要在数据库中添加的一个新项目。 (我不会经常导入文件)

我担心从文件中读取一行,然后执行 INSERT 查询,连续 10,000 次可能会导致一些问题。我有更好的方法吗?我应该对所有 10,000 个值执行一个 INSERT 查询吗?还是会一样糟糕?

也许我可以达到一种媒介,一次执行 10 或 100 个条目。真的,我的问题是我不知道什么是好的做法。也许连续 10,000 个查询没问题,我只是白担心。

有什么建议吗?

最佳答案

是的

<?php
$lines = file('file.txt');
$count = count($lines);
$i = 0;
$query = "INSERT INTO table VALUES ";
foreach($lines as $line){
    $i++;
    if ($count == $i) {
        $query .= "('".$line."')";
    }
    else{
        $query .= "('".$line."'),";
    }
}
echo $query;

http://sandbox.phpcode.eu/g/5ade4.php

这将进行一次查询,比单行单查询方式快好几倍!

关于php - 我应该限制或减少我的数据库查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803969/

相关文章:

php - 是否可以使用 PHPUnit 对类文件以外的 php 文件进行单元测试?

php - 拉维尔 5 |找不到接口(interface) 'Illuminate\Contracts\Routing\Middleware'

mysql - 无法将 CSV 导入 PhpMyAdmin

database - 带有数据库连接的 Delphi 中的 Windows 服务

java - 测量与数据库相关的网站的运行时间

php - 外部样式表与包含 php 的样式标签

PHP ZipArchive 下载工作但不添加文件到 zip

java - jdbc mysql 与远程数据库的通信链路失败

php - 将裁剪后的图像保存到本地服务器并将其 URL 保存到 MySQL 数据库

mysql - SQL中的多个like运算符