sql >> Database teknologi >  >> RDS >> Mysql

JOIN-forespørgsler vs. flere forespørgsler

For indre joinforbindelser giver en enkelt forespørgsel mening, da du kun får matchende rækker. For venstre joinforbindelse er flere forespørgsler meget bedre... se på følgende benchmark, jeg lavede:

  1. Enkelt forespørgsel med 5 Joins

    forespørgsel:8,074508 sekunder

    resultatstørrelse:2268000

  2. 5 forespørgsler i træk

    kombineret forespørgselstid:0,00262 sekunder

    resultatstørrelse:165 (6 + 50 + 7 + 12 + 90)

.

Bemærk, at vi får de samme resultater i begge tilfælde (6 x 50 x 7 x 12 x 90 =2268000)

left joins bruger eksponentielt mere hukommelse med redundante data.

Hukommelsesgrænsen er måske ikke så slem, hvis du kun laver en joinforbindelse af to tabeller, men generelt tre eller flere, og det bliver forskellige forespørgsler værd.

Som en sidebemærkning er min MySQL-server lige ved siden af ​​min applikationsserver... så forbindelsestiden er ubetydelig. Hvis din forbindelsestid er i sekunder, så er der måske en fordel

Frank



  1. Kan ikke oprette forbindelse til Postgresql på port 5432

  2. Sådan sammenkædes strenge i SQLite

  3. UML-notation

  4. SQL Server og Spectre/Meltdown Vulnerabilities