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! > > --- > Rahul Sitaram Johari > Founder, Internet Architects Group, Inc. > > [Email] sleepwalker@xxxxxxxxxxxxxxxx > [Web] http://www.rahulsjohari.com > > > > > 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