On Tue, 20 Aug 2002, Steinar Kolnes wrote:

> I am going to make a 6.5 mill. phone directory database, and after some
> previous advice I am able to make a search in a fraction of a second.
> 
> However there should only be a single search line, not different fields for
> First, Last - name, street address, Zip code and City name.
> The last name field in the database could also contain a company name.
> 
> So here is some examples
> 
> 1) First Last
> 
> 2) First Last City
> 
> 3) First Last Street_addr city
> 
> 4) First Middle Last Street_addr city
> 
> 5) First Middle
> 
> 6) Company
> 
> 7) Company City
> 
> ..
> 
> Well, there is a lot of alternatives, so the best might be a freetext.
> 
> The database looks like this:
> 
> create table subscriber
> (
>     id                bigint unsigned not null auto_increment primary key,
>     subscr_id         bigint unsigned,
>     telco_id          int unsigned,
>     typeid            int unsigned,
>     first             varchar (40),
>     middle            varchar (40),
>     last              varchar (40),
>     address           varchar (40),
>     postcode          int unsigned,
>     postname          varchar (40),
>     phone             varchar (12)
> );
> 
> My plan was to do the thing below, but the query was very slow:
> 
> create table subscriber
> (
>     id                bigint unsigned not null auto_increment primary key,
>     subscr_id         bigint unsigned,
>     telco_id          int unsigned,
>     typeid            int unsigned,
>     first             varchar (40),
>     middle            varchar (40),
>     last              varchar (40),
>     address           varchar (40),
>     postcode          int unsigned,
>     postname          varchar (40),
>     phone             varchar (12),
>     FULLTEXT          (first, middle, last, address, postname, phone)
> );
> 
> All suggestions are appreciated, thanks in advance.


Steinar,

Here is a suggestion for you:

Your setup should basically work but try the following (i'm not sure but
it could be faster): add another column such as:

      srchwords         varchar (217)

and populate it with all words from first, middle, last, address,
postname, phone. Then make your fulltext index over srchwords.

Thomas


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to