sql >> Databasteknik >  >> RDS >> Mysql

JOIN-frågor kontra flera frågor

För inre kopplingar är en enda fråga meningsfull, eftersom du bara får matchande rader. För vänster kopplingar är flera frågor mycket bättre... titta på följande benchmark jag gjorde:

  1. En fråga med 5 anslutningar

    fråga:8,074508 sekunder

    resultatstorlek:2268000

  2. 5 frågor i rad

    kombinerad frågetid:0,00262 sekunder

    resultatstorlek:165 (6 + 50 + 7 + 12 + 90)

.

Observera att vi får samma resultat i båda fallen (6 x 50 x 7 x 12 x 90 =2268000)

left joins använder exponentiellt mer minne med redundanta data.

Minnesgränsen kanske inte är lika dålig om du bara gör en sammanfogning av två tabeller, men vanligtvis tre eller fler och det blir värt olika frågor.

Som en sidoanteckning är min MySQL-server precis bredvid min applikationsserver... så anslutningstiden är försumbar. Om din anslutningstid är i sekunder, så kanske det finns en fördel

Frank



  1. Hur skapar man materialiserade vyer i SQL Server?

  2. Hur hittar man dubbletter av rader i SQL?

  3. Hur väljer man den första raden för varje grupp i MySQL?

  4. Hitta alla icke-numeriska värden i en kolumn i MariaDB