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 ...

        #Open DBF
        $db = dbase_open("dbase.dbf", 0);
        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?


Rahul Sitaram Johari
Founder, Internet Architects Group, Inc.

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

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

Reply via email to