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] [email protected]
> [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