Dwie rzeczy, które określiłeś, wcale nie są równoważne.
SQL_NO_CACHE w MySQL NIE uniemożliwia silnikowi korzystania z danych z pamięci podręcznej. Oznacza to, że zapytanie nie jest buforowane w pamięci podręcznej zapytań MySQL .
Pamięć podręczna zapytań nie jest taka sama, jak dowolna pamięć podręczna dysku, którą może mieć silnik, ponieważ buforuje wyniki zapytań, a nie bloki z dysku (lub wiersze z tabeli itp.). Dlatego buforuje wyniki instrukcji tekstowych.
Powodem używania SQL_NO_CACHE jest to, że wiesz, że będziesz wykonywać rzadko używane zapytanie, które zwraca dużo danych (dlatego zajęłoby dużo miejsca w pamięci podręcznej).
Jednak w przypadku większości instalacji MySQL zaleca się wyłączenie pamięci podręcznej zapytań, aby uzyskać więcej pamięci na pamięci podręczne stron itp. (patrz http://dom.as/tech/query-cache-tuner/ )