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

por que sql com 'existe' roda mais devagar que 'in' usando MySQL


Acho que você está um pouco confuso, está tendo uma ideia errada, 'EXISTS' funciona mais rápido que 'IN' e estou tentando fazer você entender o motivo..

EXISTS retorna um booleano e retornará um booleano na primeira correspondência. Portanto, se você estiver lidando com duplicatas/múltiplos, 'EXISTS' será mais rápido de executar do que 'IN' ou 'JOIN' dependendo dos dados e das necessidades.

Considerando que, 'IN' é açúcar sintático para cláusulas OR. Embora seja muito flexível, há problemas em lidar com muitos valores para essa comparação (ao norte de 1.000). é por isso que 'IN' é sempre comparativamente mais lento que 'EXISTS'.

Espero ter esclarecido sua confusão.