Kevin Brown <kevin@sysexperts.com> writes:
> Josh Berkus wrote:
>> They did incorporate a lot of MVCC logic into InnoDB tables, yes.
>> Which means that if SELECT count(*) on an InnoDB table is just as
>> fast as a MyISAM table, then it is not accurate.
> This is not necessarily true. The trigger-based approach to tracking
> the current number of rows in a table might well be implemented
> internally, and that may actually be much faster than doing it using
> triggers
You missed the point of Josh's comment: in an MVCC system, the correct
COUNT() varies depending on which transaction is asking. Therefore it
is not possible for a centrally maintained row counter to give accurate
results to everybody, no matter how cheap it is to maintain.
(The cheapness can be disputed as well, since it creates a single point
of contention for all inserts and deletes on the table. But that's a
different topic.)
regards, tom lane