Две вещи, которые вы указали, совсем не эквивалентны.
MySQL SQL_NO_CACHE НЕ мешает движку использовать кэшированные данные. Это означает, что запрос не кэшируется в MySQL кеш запроса .
Кеш запросов отличается от любого дискового кеша, который может быть у движка, поскольку он кэширует результаты запросов, а не блоки с диска (или строки из таблицы и т. Д.). Таким образом, он кэширует результаты текстового оператора.
Причиной использования SQL_NO_CACHE является то, что вы знаете, что будете выполнять редко используемый запрос, который возвращает много данных (следовательно, занимал бы много места в кэше).
Но большинству установок MySQL теперь рекомендуется отключать кэш запросов, чтобы освободить память для кэшей страниц и т. Д. (См. http://dom.as/tech/query-cache-tuner/)