php - 从php中的csv文件中读取大数据

标签 php csv large-data

<分区>

我正在读取 csv 并使用 mysql 检查记录是否存在于我的表中或是否存在于 php 中。

csv 有近 25000 条记录 & 当我运行我的代码时它在 2m 10s 后显示“服务不可用”错误(加载:2m 10s)

这里我添加了代码

// for set memory limit & execution time
ini_set('memory_limit', '512M');
ini_set('max_execution_time', '180');

//function to read csv file
function readCSV($csvFile)
{
    $file_handle = fopen($csvFile, 'r');
    while (!feof($file_handle) ) {

       set_time_limit(60); // you can enable this if you have lot of data

       $line_of_text[] = fgetcsv($file_handle, 1024);
   }
   fclose($file_handle);
   return $line_of_text;
 }

// Set path to CSV file
$csvFile = 'my_records.csv';

$csv = readCSV($csvFile);

for($i=1;$i<count($csv);$i++)
{
   $user_email= $csv[$i][1];

   $qry = "SELECT u.user_id, u.user_email_id FROM tbl_user as u WHERE u.user_email_id = '".$user_email."'";

   $result = @mysql_query($qry) or die("Couldn't execute query:".mysql_error().''.mysql_errno());

   $rec = @mysql_fetch_row($result);

   if($rec)
   {
      echo "Record exist";
   }
   else
   {
      echo "Record not exist"; 
   }
}

注意:我只想列出表中不存在的记录。

请建议我解决这个...

最佳答案

一个处理大文件的好方法位于:https://stackoverflow.com/a/5249971/797620

此方法用于 http://www.cuddlycactus.com/knownpasswords/ (页面已被删除)在短短几毫秒内搜索 170 多个密码。

关于php - 从php中的csv文件中读取大数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17520093/

相关文章:

PHP 错误 "T_ENCAPSED_AND_WHITESPACE, expecting T_STRING"

powershell - 是否可以在不使用临时文件的情况下添加列并删除双引号?

python - 如何使用 pandas 从 csv 读取多行到单个数据帧行

android - Realm Android 和具有多面计算的大数据集

php - 设置随机播放,不重复

php - 在 mysql 中检查所选日期和当前日期的差异

MySQL - 存储多个字段或一个 CSV 字段?

numpy - 如何计算一个非常大的相关矩阵

r - fread 保护堆栈溢出错误

php - 错误语法mysql..将数组保存到数据库时