No Oracle, há uma nota importante na planície de explicação onde diz que filter a.col1=...
este informando que você col1
primeiro é recuperado do disco e só então o filtro é feito. Esta informação importante permite que você saiba a coluna exata que foi usada em um índice específico e quais são os filtros depois e podem ser bons candidatos para índice.
No resultado da explicação do MySQL, vemos algo como:
+----+-------------+-------+------------+--------+--------------------+---------+-------+--------+----------+------------------------------------+
| id | select_type | table | partitions | type | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+--------+--------------------+---------+-------+--------+----------+------------------------------------+
| 1 | SIMPLE | SD | NULL | range | ix_store_composite | 64 | NULL | 252978 | 60.00 | Using index condition; Using where |
+----+-------------+-------+------------+--------+--------------------+---------+-------+--------+----------+------------------------------------+
O que eu gostaria de saber quais dos dados das colunas estão vindo do índice e quais estão sendo filtrados após (o using where
). Não encontrei nenhuma opção para obter detalhes adicionais sobre a explicação
"Usando condição de índice" não significa o mesmo que "Usando índice".
Rode isto:
Se precisar de mais ajuda, poste isso na sua pergunta. Mostre-nos também o
SELECT
; isso nos ajudará a entrar em mais detalhes.