Taulujen liitoksista

--------

Tulimpas tässä miettineeksi onkos mitään väliä missä järjestyksessä tauluja liittää? Vai voiko huoletta länttästä oman mieltymyksen mukaan ilman hitaantumista jne....

Keksitty esim
Kaupan_tuotteet (noin 1000 tuotetta)
Kaupan_asiakkaat (noin 200 asiakasta)
Kaupan_ostostapahtumat (noin 100000 ostostapahtumaa)

Jos haluttaisiin hakea x asiakkaan kaikki ostostapahtumat tuote tietoineen.

SELECT * FROM tuotteet AS t
JOIN ostostapahtumat AS o ON t.tuote_id = o.tuote_id
JOIN asiakkaat AS a ON a.asiakas_id = o.asiakas_id
WHERE a.asiakas_id = x

-----

SELECT * FROM asiakkaat AS a
JOIN ostostapahtumat AS o ON a.asiakas_id = o.asiakas_id
JOIN tuotteet AS t ON t.tuote_id = o.tuote_id
WHERE a.asiakas_id = x

Ja miten nuo liitokset pinnanalla menee, tehdäänkö eka WHERE ja sit lähdetään liittelemään?

2

488

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • I.Proqatlis

      Kosketat tässä ongelmaa, jonka käsittelyyn on uhrattu suunnattomia määriä aivotyötä.

      Asia ei ole aivan niin yksinkertainen, että kun joinit kirjoitetaan jossain järjestyksessä, ne myös suoritettaisiin siinä järjestyksessä. Itse asiassa kyselyn suorittamiseen kuluva aika saattaa vaihdella valtavasti riippuen siitä, missä järjestyksessä liitokset tehdään.

      Parhaan suoritustavan löytämiseksi on olemassa ohjelmia, joita kutsutaan englanniksi "query optimizer", siis optimoija. Se tutkii suoritettavaksi annetun SQL-lauseen ja analysoi sille mielestään parhaan suoritusstrategian. Valintaan vaikuttaa monia tekijöitä, mm. eri tauluissa olevien rivien määrä. Vasta tämän analyysin jälkeen, kun strategia on olemassa, lähdetään suorittamaan kyselyä.

      Tämä on laaja aihe, enkä yritä tässä sitä tarkemmin käsitellä. Eräs linkki, josta löytyy lisää tietoa, on tässä alla. Tuossa jutussa on myös linkkejä useihin sivuaviin aiheisiin.

      http://en.wikipedia.org/wiki/Query_optimizer

      • --------

        Kiitoksia jälleen, täytyypä illemmal tutkia mitä tuolt linkist löytyy. Hyvää juhannusta.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornosta

      https://www.kymensanomat.fi/paikalliset/8081054 Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornon hallussapi
      Kotka
      88
      2381
    2. Olen tosi outo....

      Päättelen palstajuttujen perusteella mitä mieltä minun kaipauksen kohde minusta on. Joskus kuvittelen tänne selkeitä tap
      Ikävä
      20
      2285
    3. Vanhalle ukon rähjälle

      Satutit mua niin paljon kun erottiin. Oletko todella niin itsekäs että kuvittelet että huolisin sut kaiken tapahtuneen
      Ikävä
      19
      1868
    4. Maisa on SALAKUVATTU huumepoliisinsa kanssa!

      https://www.seiska.fi/vain-seiskassa/ensimmainen-yhteiskuva-maisa-torpan-ja-poliisikullan-lahiorakkaus-roihuaa/1525663
      Kotimaiset julkkisjuorut
      76
      1512
    5. Oletko sä luovuttanut

      Mun suhteeni
      Ikävä
      105
      1487
    6. Hommaatko kinkkua jouluksi?

      Itse tein pakastimeen n. 3Kg:n murekkeen sienillä ja juustokuorrutuksella. Voihan se olla, että jonkun pienen, valmiin k
      Sinkut
      160
      1256
    7. Aatteleppa ite!

      Jos ei oltaisikaan nyt NATOssa, olisimme puolueettomana sivustakatsojia ja elelisimme tyytyväisenä rauhassa maassamme.
      Maailman menoa
      257
      1052
    8. Mitä sanoisit

      Ihastukselle, jos näkisitte?
      Tunteet
      70
      981
    9. Onko se ikä

      Alkanut haitata?
      Ikävä
      78
      919
    10. Omalääkäri hallituksen utopia?

      Suurissa kaupungeissa ja etelässä moinen onnistunee. Suuressa osassa Suomea on taas paljon keikkalääkäreitä. Mitenkäs ha
      Maailman menoa
      174
      903
    Aihe