Las dos cosas que has dicho no son en absoluto equivalentes.
SQL_NO_CACHE de MySQL NO impide que el motor use datos almacenados en caché. Significa que la consulta no está almacenada en caché en MySQL caché de consultas .
La caché de consultas no es la misma que cualquier caché de disco que pueda tener el motor porque almacena en caché los resultados de las consultas, no los bloques del disco (o las filas de una tabla, etc.). Entonces almacena en caché los resultados de una declaración de texto.
La razón para usar SQL_NO_CACHE es que sabe que va a realizar una consulta de uso poco frecuente que devuelve una gran cantidad de datos (por lo tanto, ocuparía mucho espacio en la memoria caché).
Pero ahora se recomienda a la mayoría de las instalaciones de MySQL que desactiven la caché de consultas para crear más memoria para las cachés de páginas, etc. (ver http://dom.as/tech/query-cache-tuner/ )