आपने जो दो बातें बताई हैं, वे बिल्कुल भी समान नहीं हैं।
MySQL का SQL_NO_CACHE इंजन को कैश्ड डेटा का उपयोग करने से नहीं रोकता है। इसका अर्थ है कि क्वेरी को MySQL क्वेरी कैशे में कैश नहीं किया गया है ।
क्वेरी कैश इंजन के किसी भी डिस्क कैश के समान नहीं है क्योंकि यह क्वेरी के परिणामों को कैश करता है, डिस्क से ब्लॉक नहीं (या किसी तालिका से पंक्तियाँ आदि)। तो यह एक टेक्स्ट स्टेटमेंट के परिणामों को कैश करता है।
SQL_NO_CACHE का उपयोग करने का कारण यह है कि आप जानते हैं कि आप एक बार-बार उपयोग की जाने वाली क्वेरी करने जा रहे हैं जो बहुत अधिक डेटा लौटाती है (इसलिए कैश में बहुत अधिक स्थान लेती है)।
लेकिन अधिकांश MySQL स्थापनाओं को अब पृष्ठ कैश आदि के लिए अधिक मेमोरी बनाने के लिए क्वेरी कैश को बंद करने की सलाह दी जाती है (देखें http://dom.as/tech/query-cache-tuner/ )