Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Convertendo entre cláusula para junções


O que você ouviu sobre varreduras de intervalo e between no MySQL simplesmente não é verdade. Aqui está uma citação da documentação :

Portanto, o uso de um índice não é surpreendente. O melhor índice para esses dados seria um índice composto em start, end .

O problema que você tem é que você tem duas colunas start e end . Isso torna a consulta um pouco mais complicada.

O seguinte pode ter um desempenho melhor em algumas circunstâncias, com um índice em start e um índice separado no end e uma chave primária nas linhas:
select gt.*
from (SELECT * FROM autumn4.ip WHERE :number >= start) gt join 
     (SELECT * FROM autumn4.ip WHERE :number <= end) lt
     on gt.PRIMARYKEY = lt.PRIMARYKEY;