Hlavní navigace

Názor k článku Korelované vnořené dotazy: proč nepoužívat a čím nahradit od Sten - S MySQL to není tak úplně pravda, i...

  • Článek je starý, nové názory již nelze přidávat.
  • 12. 3. 2008 0:43

    Sten (neregistrovaný)
    S MySQL to není tak úplně pravda, i tam mohou poddotazy dost ušetřit práci. Například na vybrání 1000 záznamů od určitého ID (kde ID mohou být vynechána) nic lepšího pro MySQL není :) Zkusit SELECT * FROM zaznamy WHERE id > $start LIMIT 1000; je na tabulce s několika miliony záznamů s variabilní délkou pomalá a bolestivá vražda databáze, zatímco SELECT * FROM zaznamy WHERE id > $start AND id < (SELECT max(id) FROM (SELECT id FROM zaznamy WHERE id > $start LIMIT 1000) AS data ); doběhne poměrně rychle (id je samozřejmě primární klíč).

    Ale máte pravdu, že spousta věcí se v MySQL chová dost zvláštně, takže je vždy výhodnější použít EXPLAIN, než se něco začne používat, jinak se může blbě odhadnout, jak se to bude chovat (třeba u uvedeného příkladu mě ten dost razantní rozdíl v rychlosti nenapadl, ale díky EXPLAIN se to objevilo).