Quando executo a consulta abaixo do servidor MySQL, ele mostra uma saída diferente para cada vez, mesmo que o banco de dados esteja estável e não seja usado por ninguém, exceto por mim.
SELECT TABLE_NAME , table_rows
FROM information_schema.tables
WHERE table_schema='DBNAME'
AND TABLE_TYPE != 'VIEW'
Versão do servidor MySQL: 5.1
Estou bastante confuso com esse comportamento.
Eu estou supondo que você está obtendo uma contagem de linha variável na coluna table_row? Este é o comportamento esperado para tabelas InnoDB.
"Para tabelas InnoDB, a contagem de linhas é apenas uma estimativa aproximada usada na otimização SQL. (Isso também é verdade se a tabela InnoDB for particionada."
http://dev.mysql.com/doc/refman/5.1/en/tables-table.html
Há mais informações aqui: http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html
Notavelmente: " ANALYZE TABLE determina a cardinalidade do índice (conforme exibido na coluna Cardinality da saída SHOW INDEX) fazendo oito mergulhos aleatórios em cada uma das árvores de índice e atualizando as estimativas de cardinalidade do índice de acordo. Como essas são apenas estimativas, execuções repetidas de ANALYZE TABLE podem produzem números diferentes . Isso torna ANALYZE TABLE rápido em tabelas InnoDB, mas não 100% preciso porque não leva em consideração todas as linhas "