Join ou não Join?
Ontem perguntei para um professor meu fera em Postgres qual a diferença entre selects com multiplas tabelas usando where e usando inner join. A resposta foi que os dois internamente podem até ser a mesma coisa dependendo da implementação do SGDB.
Então fiz um teste usando o Firebird e com a GUI IB Expert. Bem aparentemente no FB não existem diferenças, internamente é feito a mesma coisa!
Aqui o que mostra no “debugger”:
Plan PLAN JOIN (CTP NATURAL, PSS INDEX (INTEG_230)) Adapted Plan PLAN JOIN (CTP NATURAL, PSS INDEX (INTEG_230))
Aqui as sql que usei:
select * from pessoas P inner join CATEGORIAS CT on P.ct_codigo = CT.ct_codigo
select * from pessoas P, CATEGORIAS CT where P.ctp_codigo = CT.ct_codigo
Isso vem de uns papos que algumas pessoas tinham que me falavam que o inner join era mais rápido… No fim parece que tudo é a mesma coisa. Falta fazer um benchmark…