Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

कैसे MySQL संग्रहीत जेनरेटेड कॉलम MySQL वर्चुअल जेनरेटेड कॉलम से अलग हैं?


MySQL संग्रहीत जेनरेटेड कॉलम और MySQL वर्चुअल जेनरेटेड कॉलम के बीच कुछ बुनियादी अंतर निम्नलिखित हैं -

डिस्क स्थान के संदर्भ में

यदि हम डिस्क स्थान के संदर्भ में अंतर देखते हैं तो वर्चुअल जेनरेट किए गए कॉलम कोई डिस्क स्थान नहीं लेंगे। दूसरी ओर, संग्रहीत जनरेट किया गया कॉलम डिस्क स्थान लेगा।

ऑपरेशन के संदर्भ में

यदि हम संचालन के संदर्भ में अंतर देखते हैं तो वर्चुअल जेनरेट किए गए कॉलम INPLACE ऑपरेशन हैं, जिसका अर्थ है कि सभी डेटा को फिर से कॉपी किए बिना टेबल की परिभाषा बदल दी जाती है। दूसरी ओर, संग्रहीत जनरेट किए गए कॉलम एक कॉपी ऑपरेशन हैं और इसकी लागत वही है जो तालिका में एक नया कॉलम जोड़ने की है।

गणना के संदर्भ में

वर्चुअल जेनरेट किए गए कॉलम में रीडिंग ऑपरेशन के दौरान और ट्रिगर से पहले मानों की गणना फ्लाई पर की जाती है। दूसरी ओर, संग्रहीत जेनरेट किए गए कॉलम में मान प्रत्येक INSERT और UPDATE स्टेटमेंट में अपडेट किए जाते हैं।

कब उपयोग करें

हमें डेटा के लिए वर्चुअल कॉलम का उपयोग करने पर विचार करना चाहिए जहां महत्वपूर्ण संख्या में परिवर्तन होते हैं। वर्चुअल कॉलम की लागत एक टेबल को लगातार पढ़ने से आती है और सर्वर को हर बार यह गणना करनी होती है कि वह कॉलम वैल्यू क्या होगी। दूसरी ओर, जब डेटा महत्वपूर्ण रूप से नहीं बदलता है या निर्माण के बाद बिल्कुल भी नहीं बदलता है, तो हमें संग्रहीत कॉलम का उपयोग करने पर विचार करना चाहिए।


  1. MySQL क्वेरी का उपयोग करके विभिन्न स्तंभों और अतिरिक्त स्ट्रिंग से स्ट्रिंग्स को कैसे संयोजित करें?

    आइए पहले एक टेबल बनाएं - तालिका बनाएं DemoTable(FirstName varchar(100), LastName varchar(100));क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.76 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (डेविड, मिलर); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) चयन कथन का

  1. ORDER BY के साथ दो अलग-अलग तालिकाओं से दो अलग-अलग कॉलम प्रदर्शित करें?

    इसके लिए आप ORDER BY क्लॉज के साथ UNION का इस्तेमाल कर सकते हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1(राशि int);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.63 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1 मानों में डालें ( 134);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.43

  1. MySQL में विभिन्न तालिकाओं से स्तंभों को संयोजित करें

    आप CONCAT() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.90 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1 मानों में डालें (डेविड); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्श