Por que há sempre um sinal de til (~) na mensagem resultante no mysql

0

Sempre que eu atualizo ou pesquiso qualquer coisa na tabela no mysql, a mensagem resultante sempre mostra resultados como este.

Showing rows 0 - 10 ( ~11 total , Query took 0.0004 sec)

Quando estiver mostrando o número exato de linhas, por que é sempre mostrado um sinal "~" antes dos valores totais.

Este sinal indica que esta tabela tem "quase 11 linhas" ou "aproximadamente 11 linhas", mas isso não é verdade. Tem exatamente 11 linhas. Então, por que esse sinal.

Usamos esses sinais apenas quando não temos os valores exatos para resultado ou qualquer coisa.

Eu li as FAQs sobre isso dizendo que.

phpMyAdmin uses a quick method to get the row count, and this method only returns an approximate count in the case of InnoDB tables. See $cfg['MaxExactCount'] for a way to modify those results, but this could have a serious impact on performance.

e o método usado nesta declaração mostra essas linhas

For InnoDB tables, determines for how large tables phpMyAdmin should get the exact row count using SELECT COUNT. If the approximate row count as returned by SHOW TABLE STATUS is smaller than this value, SELECT COUNT will be used, otherwise the approximate count will be used. 

Eu não entendi essas linhas que eles estão tentando dizer.

    
por Waseem 11.03.2014 / 12:01

1 resposta

0

Você meio que respondeu a pergunta, mas deixe-me elaborar um pouco. Como o phpMyAdmin sempre usa o mesmo método rápido para contar linhas, ele não é sempre exato. Quanto maiores os dados, maior a chance de serem imprecisos. O phpMyAdmin não verifica se a contagem é precisa (o que iria contra o propósito da contagem rápida), por isso não sabe quando é exacta. É mais fácil (e seguro) errar do lado da cautela e assumir que ela pode ser imprecisa.

    
por 28.03.2014 / 09:22

Tags