Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann man bestimmen, was effektiver ist:DISTINCT oder WHERE EXISTS?

Verwenden Sie EXISTS statt DISTINCT

Mit DISTINCT können Sie die Anzeige doppelter Zeilen unterdrücken; Sie verwenden EXISTS, um zu prüfen, ob Zeilen vorhanden sind, die von einer Unterabfrage zurückgegeben werden. Wann immer möglich, sollten Sie EXISTS anstelle von DISTINCT verwenden, da DISTINCT die abgerufenen Zeilen sortiert, bevor die doppelten Zeilen unterdrückt werden.

In Ihrem Fall würden viele doppelte Daten vorhanden sein, sodass die vorhandenen schneller sein sollten.

von http://my.safaribooksonline.com/ book/-/9780072229813/high-performance-sql-tuning/ch16lev1sec10