Re: dbase_get_record_with_names; Very slow search!!!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Nov 24, 2009, at 8:59 AM, Ashley Sheridan wrote:

On Tue, 2009-11-24 at 08:40 -0500, Rahul S. Johari wrote:

Ave,

I'm connecting to a foxpro database (dbase) and simply running a
search to retrieve a record. It's a very simple code.
The problem is, as the database is growing, the search is becoming
ridiculously slow ... and I mean it's taking "minutes". When the dbase
had 10,000 records ... search was fast & efficient ... as if you were
connecting to a mySQL Database. Now that the database has over 75,000
records and still growing ... it's taking minutes to search.

The database has about 35 fields; Search is based on a phone number.
This is the code ...

<?php
	#Open DBF
	$db = dbase_open("dbase.dbf", 0);
		
	#PULL UP RECORD
	if ($db) {
	  $record_numbers = dbase_numrecords($db);
	  for ($i = 1; $i <= $record_numbers; $i++) {
		 $row = dbase_get_record_with_names($db, $i);
		 if ($row['PHONE'] == $_POST['PHONE']) {
			
			#Retrieve row & display fields
			echo $row['STUFF'];		
		}	
	}
}
?>

It works ... but it's getting way too slow.

One thing with FoxPro DBF's is that they use an Index file for
searches within FoxPro. These are .CDX files which contain the Index.
You can create an Index on, for example, PHONE field. However I don't
think there's any way in PHP to reference this Index file for faster
searches.

Is there any possibility to improve search response time?

Thanks!


I would assume that any indexes created on any tables would be
referenced automatically by the dbms and wouldn't need to be explicitly
referenced from within PHP.

Thanks,
Ash
http://www.ashleysheridan.co.uk



Makes sense; but I'm not sure if the Index is being referenced here ... based on the extremely slow searches.

---
Rahul Sitaram Johari
Founder, Internet Architects Group, Inc.

[Email]	sleepwalker@xxxxxxxxxxxxxxxx
[Web]	http://www.rahulsjohari.com





--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux