Pode ser apenas uma pergunta para uma micro-performance, mas sempre volta à minha cabeça (só me deixando louco). Não consigo encontrar nenhuma resposta no Google sobre isso. Eu só quero esclarecer.
Eu tenho essas duas consultas de exemplo.
SELECT tbl_person.first_name, tbl_person.last_name, ....
FROM tbl_person
WHERE tbl_person.tbl_person_id=1
LIMIT 1
e este.
SELECT p.first_name, p.last_name, ....
FROM tbl_person p
WHERE p.tbl_person_id=1
LIMIT 1
Existe alguma vantagem ou desvantagem entre eles?
Eu sei que o segundo é mais fácil de ler e escrever, mas não importa porque a consulta será apenas gerada.
Estou interessado no impacto no desempenho. Se a consulta tiver algumas centenas de vezes mais caracteres, isso prejudica o desempenho?
Não de forma significativa. A análise inicial pode demorar um pouco mais, assim como a transferência de rede (embora para centenas ou mesmo milhares de caracteres você não verá isso, a menos que esteja falando com o servidor por uma conexão de celular ou algo assim!), mas depois disso stage, o planejador de consulta receberá as mesmas instruções tokenizadas, independentemente de você ter usado aliases de tabela ou não. O tempo gasto no domínio do planejador de consulta será muito mais significativo do que o tempo de análise + tokenização, e a execução do plano resultante geralmente será muito mais cara novamente.
tl;dr: se houver uma diferença de desempenho ela será praticamente indetectável.