On 4/21/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Willie Gnarlson <[EMAIL PROTECTED]> wrote on 04/20/2005 05:46:25  PM:
>  > On 4/20/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>  > > Willie Gnarlson <[EMAIL PROTECTED]> wrote on 04/20/2005
> 01:56:03 PM:
>  > >  > On 4/20/05, Dan Nelson <[EMAIL PROTECTED]> wrote:
>  > >  > > In the last episode (Apr 20), Willie Gnarlson said:
>  > >  > > > I have been attempting to uncover a fast method for retrieving
> unique
>  > >  > > > items from every column in a table. The table has approximately
> 60
>  > >  > > > thousand rows. Each row has an index associated with it, and
> running
>  > >  > > > 'explain select distinct class from dlist' shows that it isusing
> the
>  > >  > > > index.
>  > >  > > >
>  > >  > > > However, since there are 24 columns, running that select query
> for
>  > >  > > > each column takes about 4 long seconds on a P4 2.4 Ghz.
>  > >  > > 
>  <snip - see previous posts on this thread for details>
>  > Okay, they aren't creating new values using that form. The form I've
>  > been talking about is a form to limit results from the database to
>  > only specific values for  specific fields without the user having to
>  > know from memory what the possible values are (plus, they'll change
>  > every so often).
>  >   

(...)

>  
> If I read that last part correctly, you have already identified the need for
> a mechanism for managing the value lists separately from what the user
> enters. In this case you should have everything in place (or almost in
> place) to put each list into its own table (Someone else suggested this
> design, too). 

Right, yes.
  
(...)
> Run your queries once to build your lists then use another form (or even use
> a separate application) to manage the lists. Because it's a one-time event,
> getting the first set of unique values can take all night if it needs to.
> What you need to be fast is the building of the select boxes. By having
> those lists ready-to-go on their own tables, it will be as fast as a
> sequential read from the disk (very fast) or a read from the disk cache
> (faster) or a read from the query cache (fastest). In any case, running the
> queries will no longer slow you down. 

It actually seems slower. The separate tables from a previous try look
like this:

CREATE TABLE `ET` (
  `ET` double NOT NULL default '0',
  PRIMARY KEY  (`ET`),
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

That table has 4781 records, but some have more (one has ~18
thousand). There are 42 "column" tables.

Querying all of them took 5.58 seconds.

-- 
Willie Gnarlson

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to