On Thu, 2007-09-20 at 14:25 +0200, Paul Scott wrote: > On Thu, 2007-09-20 at 08:03 -0400, Robert Cummings wrote: > > Post some samples of the data you are parsing and a sample of the code > > you've written to parse them. If you're parsing 750 megs of data then > > it's quite likely you could squeeze some performance out of the parse > > routines themselves. > > Today's dataset is in a CSV (tab separated) , so I am using fgetcsv, it > looks like this (geo data): > > 936374 Roodepoort Roodepoort Roodeport-Maraisburg -26.1666667 27.8666667 > P PPL ZA ZA 06 0 1759 Africa/Johannesburg 2004-05-11 > > Code: > [SNIP] > $row = 1; > $handle = fopen($csvfile, "r"); > while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) { > $num = count($data); > $row++; > $insarr = array('userid' => $userid, > 'geonameid' => $data[0], > 'name' => $data[1], > 'asciiname' => $data[2], > 'alternatenames' => $data[3], > 'latitude' => $data[4], > 'longitude' => $data[5], > 'featureclass' => $data[6], > 'featurecode' => $data[7], > 'countrycode' => $data[8], > 'cc2' => $data[9], > 'admin1code' => $data[10], > 'admin2code' => $data[11], > 'population' => $data[12], > 'elevation' => $data[13], > 'gtopo30' => $data[14], > 'timezoneid' => $data[15], > 'moddate' => $data[16] > ); > $this->objDbGeo->insertRecord($insarr); > //$arr[] = $data; > } > fclose($handle); > > --Paul > > > All Email originating from UWC is covered by disclaimer > http://www.uwc.ac.za/portal/uwc2006/content/mail_disclaimer/index.htm You can probably speed this up A LOT if you can batch multiple queries. For instance, in MySQL you can do: INSERT INTO some_table ( x, y, z ) VALUES ( 1, 2, 3 ), ( 2, 3, 4 ), ( 5, 6, 7 ), ... If you do these in batches of 1000 you should be able to make a big time savings. Since you're useing fgetcsv() it's doubtful you can improve the file access/parse. Your bottleneck is most likely the database inserts. Cheers, Rob. -- ........................................................... SwarmBuy.com - http://www.swarmbuy.com Leveraging the buying power of the masses! ........................................................... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php