Using "select Url from table where Ref like 'foo'" gives these results:
1 row in set (2 min 11.54 sec)
Using "select Url from table where Ref = 'foo'" gives these results:
1 row in set (8 min 47.69 sec)
The same "foo" was used for each one of those queries.
I believe the time problem has to do with the indexes - particularly the
cardinality. But I am not sure based on the documentation. I am also a
little reluctant to use myisamchk -a because I am afraid it will take a long
time. So my questions again are:
Is having a NULL CARDINALITY bad?
Do I have to rebuild the index each time I dump the entire table and insert
millions of rows?
If so, what is the best way to do that? myisamchk -a?
Duncan
--
Duncan Salada | Titan | www.titan.com/testeval
Email: [EMAIL PROTECTED] | Voice: 301-925-3222x375 | Fax: 301-925-3216
> -----Original Message-----
> From: Gerald Clark [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, March 21, 2002 11:11 AM
> To: Salada, Duncan
> Cc: '[EMAIL PROTECTED]'
> Subject: Re: help with index/query
>
>
> what about
> select Url from table where Ref = 'foo'
>
> Salada, Duncan wrote:
>
> >I am hoping I can get some help with a difficulty I am
> having with a table
> >of mine. I am going to give a lot of background info, so
> please bear with
> >me. First, let me say that I using 3.23.49. Now some info
> about the table.
> >It currently has 5687391 rows. There are 3 columns in the
> table: ID (int),
> >Url (varchar(255)), and Ref (varchar(255)). There are two
> indexes for the
> >table: one on ID and the other on the first 15 characters of Ref.
> >
> >Now my problem: select queries on this table with no joins
> searching for a
> >constant in the Refs column only are extremely slow. Here
> is what all the
> >sql statements look like "select Url from table where Ref
> like 'foo'".
> >Pretty simple right? Here's the deal this table is used
> only by a little
> >app that I wrote. Each time the app runs it queries this
> table as shown
> >above about 4600 times with different values for "foo".
> Each query seems to
> >be taking about 2 minutes to execute. This seems odd to me
> because I tested
> >it while I was writing the app and the queries were taking a
> little over a
> >second.
> >
> >
> >So I took a look at my table structure and my indexes. I
> >noticed from SHOW
> >INDEX that the CARDINALITY for the index on the Ref column is
> >NULL. From
> >reading about CARDINALITY in the manual that NULL value seems
> >like a very
> >bad thing. Every time my app runs (about once a month) I
> >dump all of the
> >rows in this table and insert about 5 million new rows. I do
> >not drop the
> >table and recreate it. I began thinking that perhaps the dumping and
> >inserting is perhaps creating havoc with my index on the Ref column.
>
> >So without further ado, here are my questions for the list:
> >Is having a NULL CARDINALITY bad?
> >Do I have to rebuild the index each time I dump the entire
> >table and insert
> >millions of rows?
> >If so, what is the best way to do that - myisamchk -a?
>
---------------------------------------------------------------------
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