Todo mundo sabe que, em tabelas que usam o InnoDB como motor, consultas do tipo SELECT COUNT(*) FROM mytable
são muito inexatas e muito lentas, principalmente quando a tabela fica maior e há constantes inserções/exclusões de linhas enquanto a consulta é executada.
Pelo que entendi, o InnoDB não armazena a contagem de linhas em uma variável interna, que é o motivo desse problema.
Minha pergunta é: Por que isso acontece? Seria tão difícil armazenar tais informações? É uma informação importante saber em muitas situações. A única dificuldade que vejo se tal contagem interna seria implementada é quando as transações estão envolvidas: se a transação não for confirmada, você conta as linhas inseridas por ela ou não?
PS: Não sou especialista em DBs, sou apenas alguém que tem o MySQL como um simples hobby. Portanto, se acabei de perguntar algo estúpido, não seja excessivamente crítico: D .