sql >> Databáze >  >> RDS >> Mysql

Jednoduchý výkon poddotazu MySQL

V prvním dotazu by měl mysql vybrat podmnožinu z mdl_enrol tabulku a dokončit mdl_user_enrolments a mdl_userdata do paměti. Vyberete tedy hodně dat v paměti. Poté, co to uděláte - připojíte data. Pokud není dostatek paměti pro uložení všech dat, dokud nebudou spojena a odeslána zpět klientovi, vytvoří se dočasná tabulka na pevném disku. Optimalizátor mysql s největší pravděpodobností není dostatečně cool, aby napravil vaši chybu a pokusil se vylepšit plán provádění. Proto je pomalý.

Zatímco u druhého dotazu mysql ví, co přesně potřebuje vybrat, a vybere jen malé množství požadovaných dat. V tomto scénáři je možné použít indexy (za předpokladu, že byly vytvořeny všechny potřebné indexy). Takže je to rychlé.




  1. Rozhraní API kalendáře Google :Výběr/Vytváření kalendářů?

  2. mysql:kód chyby [1267]; Neplatná kombinace porovnávání (latin1_general_cs,IMPLICIT) a (latin1_swedish_ci,IMPLICIT) pro operaci '='

  3. Opravte poškozenou databázi SQL během problému s upgradem

  4. Mysql - Pomozte mi změnit tento vyhledávací dotaz, abych získal požadované výsledky