Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que as linhas retornadas por explicação não são iguais a contagem ()?


Ele está mostrando quantas linhas ele percorreu para obter seu resultado.

A razão para os dados errados é que EXPLAIN não é preciso, ele faz suposições sobre seus dados com base nas informações armazenadas sobre sua tabela.

Esta é uma informação muito útil, por exemplo, ao fazer JOINS em muitas tabelas e você deseja ter certeza de que não está executando toda a tabela unida para uma linha de informações para cada linha que você possui.

Aqui está um teste em uma tabela de 608 linhas.
SELECT COUNT(id) FROM table WHERE user_id = 1

Resultado:
COUNT(id)
512

E aqui está a explicação
EXPLAIN SELECT COUNT(id) FROM table WHERE user_id = 1

Resultado:
id  rows
1   608