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]       sleepwal...@rahulsjohari.com
> [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


Reply via email to