Total row count is cached in the header for MyISAM tables. InnoDB has
no such mechanism for this because transactions make it impossible to
keep an exact row count. In order for InnoDB to get a row count it
has to do a full scan inside a transaction which will take a long
time. One way around this is to maintain row count in another table.
For show table status it's better to only check the tables you need.
Example: show table status like 'my_table'
I'm not aware of any plans to speed up either of these commands on InnoDB.
On Mon, 14 Feb 2005 12:06:09 -0500, Zhe Wang <zwang@stripped> wrote:
> Hi, there,
> I am in the middle of replacing a MyISAM database with InnoDB.
> Queries "show table status" and "select count" are extremely slow which
> gave me some pain. I am wondering if there are any other queries on
> InnoDB that are significantly slower than those on MyISAM other than
> these two? And does MySQL have any plan to speed up this kind of queries?
> Thank you very much in advance for your reply!
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe: http://lists.mysql.com/mysql?unsub=1