将400MB + CSV文件转换为MySQL

时间:2013-09-10 09:39:45

标签: mysql csv import

我有一个超过400MB的CSV文件(请参阅此处http://www.doogal.co.uk/UKPostcodes.php

但是我需要将它导入MySQL数据库,我的托管公司在导入它时遇到了一些麻烦。他们说他们可以用SQL格式真正做到这一点,以便他们可以通过SSH导入它。

有谁知道我怎么转换它?我找到了一个工具'SQLyog',但它只能在Windows上使用,我使用的是Mac

2 个答案:

答案 0 :(得分:0)

或者如果您自己拥有本地服务器(例如WAMP),您可以在本地计算机上导入CSV,并创建一个新的.sql导出。

答案 1 :(得分:0)

我已经通过php将大型csv文件转换为mysql。可能这会对你有所帮助。 首先,我通过在线分割器拆分了我的csv文件。 然后我为每个csv文件运行这个PHP代码。

<?php
 ini_set('max_execution_time', 500); // increasing the execution time for php 
 incase of larger csv files
 $connect = mysql_connect('localhost','root','');
 if (!$connect) {
  die('Could not connect to MySQL: ' . mysql_error());
 }

 $cid =mysql_select_db('test',$connect);

 $csv_file = "candidate-info_1.csv"; 
 $csvfile = fopen($csv_file, 'r');
 $theData = fgets($csvfile);
 $i = 0;

 while (!feof($csvfile)) {
 $csv_data[] = fgets($csvfile, 1024);
 $csv_array = explode(",", $csv_data[$i]);

 $data=explode(';',$csv_array[0]);

 $insert_csv = array();
 $insert_csv['email'] = $data[0];
 $insert_csv['name'] = $csv_array[1];
 $insert_csv['mobile'] = $csv_array[2];

 $query = "INSERT INTO csvtosql(id,email,name,mobile)
 VALUES('','".$insert_csv['email']."','".$insert_csv['name']."',
         '".$insert_csv['mobile']."')";
  $n=mysql_query($query, $connect );
  $i++;
  }
  fclose($csvfile);
  echo "File data successfully imported to database!!";

  mysql_close($connect);
  ?>

希望这能解决您的问题:http://iqminds.com/converted-large-csv-file-mysql-php/