Dvě věci, které jste uvedl, nejsou vůbec ekvivalentní.
SQL_NO_CACHE MySQL NEZASTAVUJE enginu v používání dat uložených v mezipaměti. Znamená to, že dotaz není uložen do mezipaměti MySQL mezipaměti dotazů .
Mezipaměť dotazů není stejná jako jakákoli disková mezipaměť, kterou může mít engine, protože ukládá do mezipaměti výsledky dotazů, nikoli bloky z disku (nebo řádky z tabulky atd.). Takže ukládá výsledky textového příkazu.
Důvodem pro použití SQL_NO_CACHE je to, že víte, že budete provádět málo používaný dotaz, který vrací hodně dat (proto by zabral hodně místa v mezipaměti).
Ale většině instalací MySQL se nyní doporučuje vypnout mezipaměť dotazů, aby se uvolnilo více paměti pro mezipaměti stránek atd. (viz http://dom.as/tech/query-cache-tuner/ )