Die beiden Dinge, die Sie angegeben haben, sind überhaupt nicht gleichwertig.
SQL_NO_CACHE von MySQL hält die Engine NICHT davon ab, zwischengespeicherte Daten zu verwenden. Das bedeutet, dass die Abfrage nicht im Abfrage-Cache von MySQL zwischengespeichert wird .
Der Abfrage-Cache ist nicht dasselbe wie jeder Disc-Cache, den die Engine möglicherweise hat, da er die Ergebnisse von Abfragen zwischenspeichert, nicht Blöcke von der Disc (oder Zeilen aus einer Tabelle usw.). Es speichert also die Ergebnisse einer Textanweisung.
Der Grund für die Verwendung von SQL_NO_CACHE ist, dass Sie wissen, dass Sie eine selten verwendete Abfrage durchführen werden, die viele Daten zurückgibt (und daher viel Platz im Cache einnehmen würde).
Aber den meisten MySQL-Installationen wird jetzt empfohlen, den Abfrage-Cache auszuschalten, um mehr Speicher für Seiten-Caches usw. zu schaffen (siehe http://dom.as/tech/query-cache-tuner/ )