> In the last episode (Mar 26), Daevid Vincent said:
> > Aside from the incredibly annoying fact that InnoDB tables 
> don't store a
> > total COUNT(), my question is... Why are these numbers 
> different? I could
> > easily parse out the second query which is REDICULOUSLY 
> faster. BTW, why
> > doesn't mySQL just 'alias' the first query behind the 
> scenes for us and
> > parse out the count?
> 
> SHOW TABLE STATUS simply returns a guess based on some index dives on
> InnoDB tables, and will actually change every time you run the command
> as it randomly picks different parts of the index to examine.
> 
> http://dev.mysql.com/doc/refman/5.0/en/show-table-status.html :
> 
>   Rows
> 
>     The number of rows. Some storage engines, such as MyISAM, 
> store the
>     exact count. For other storage engines, such as InnoDB, this value
>     is an approximation, and may vary from the actual value by as much
>     as 40 to 50%. In such cases, use SELECT COUNT(*) to obtain an
>     accurate count.

Thanks Dan.

UGH. This is useless.

WHY doesn't COUNT(*) return fast like MYISM tables do?
This seems like such a glaring oversight when designing INNODB tables.

I don't use transactions. I could give a shit about transactions. I only use
INNODB for Foreign Keys. Can't there be some setting in my.cnf for users
like us?

Is mySQL planning on fixing this BUG. YES -- it is a BUG. A BIG FAT HARRY
ONE. 
It's completely stupid that I can't query and get an accurate total of
records in a table in under a second. 

A deviation of 40-50% is SIGNIFICANT! 
You might as well just use RAND() at that point.

Oh, and BTW, my company DOES pay mySQL for a support contract of several
thousand dollars per year. So spare me the 'free software' speeches...

This is absolutely baffling and astonishing how a company so seemingly smart
could make such an incredible blunder.  :-\



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

Reply via email to