Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP सत्र में कैश डेटा, या हर बार डीबी से क्वेरी?

यदि आपका डेटा प्रत्येक पृष्ठ पर उपयोग किया जाता है, और सभी उपयोगकर्ताओं के लिए समान है, तो मैं इसे $_SESSION (जिसका अर्थ है कि प्रत्येक उपयोगकर्ता के लिए उस डेटा की एक अलग प्रति होना) में कैश नहीं करता, लेकिन किसी अन्य तंत्र के साथ, जैसे:

  • फ़ाइल
  • स्मृति में, उदाहरण के लिए APC के साथ (यदि केवल 1 सर्वर हो)
  • स्मृति में, memcached के साथ, उदाहरण के लिए (यदि आपके पास कई सर्वर हैं)
  • यदि आपके डेटा को लंबी गणनाओं या कई डीबी प्रश्नों को प्राप्त करने की आवश्यकता है, तो इसे डेटाबेस में कैशिंग करना एक और संभावना हो सकती है (इसका मतलब होगा कि वापस लाने के लिए केवल 1 क्वेरी, और कम गणना)


यदि आपका डेटा प्रत्येक उपयोगकर्ता के लिए समान नहीं है (जो आपकी स्थिति में ऐसा प्रतीत होता है, क्योंकि आप नाम, जन्मतिथि, ... को कैश कर रहे हैं ...) :

  • मैं यह सुनिश्चित करूंगा कि मैं केवल वही कैश करूं जो आवश्यक हो
  • एक बार जब आपके पास कैश करने के लिए केवल कुछ डेटा हो, तो इसे सत्र में रखना बिल्कुल ठीक होना चाहिए
  • यदि आपके पास वास्तव में इतने सारे उपयोगकर्ता हैं, तो आपको शायद कुछ अन्य मापनीयता समस्याएं होंगी, और सबसे अधिक संभावना है कि आप memcached जैसी किसी चीज़ का उपयोग करेंगे; जिसका अर्थ है कि आपके पास कैशिंग का कोई अन्य तरीका होगा;-)

एक विचार के रूप में:यदि आप एक ही क्वेरी को बार-बार कर रहे हैं, तो आप डीबी सर्वर को इसे स्वयं कैश करना चाहिए (MySQL के लिए, यह "क्वेरी कैश "); इसलिए, यह उतना बुरा नहीं होगा जितना आप सोचते हैं, मुझे लगता है - भले ही इतना अनुकूलित न हो ^^



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. परिणामसेट बंद होने के बाद संचालन की अनुमति नहीं है (mysql, java)

  2. MySQL Dumps से DEFINER क्लॉज हटाएं

  3. MySQL पुराने पासवर्ड से नए पासवर्ड सिस्टम में अपग्रेड कैसे करें

  4. एकाधिक डेटाबेस और लेनदेन

  5. mysql में एक ही प्रश्न के साथ बाल श्रेणी का मूल नाम प्राप्त करना