मेरे पास "TABLE A"
डेटाबेस में है जिसमें 1000000
(1 मिलियन) रिकॉर्ड के साथ 3 कॉलम "COL 1" , "COL 2" and "COL 3"
शामिल हैं।मेमोरी में डेटा संग्रहीत
इस तालिका के खिलाफ मैं एक साधारण POJO
मैप किया गया है का कहना है कि 3 उदाहरण चर "var1" , "var2" , "var3"
और भी वहाँ परिभाषित set()
और get()
तरीकों के साथ "ClassA"
सुविधा देता है।
मेरे आवेदन में सरल जेएसपी, सर्वलेट्स और पीओजेओ शामिल हैं जिनमें कोई फैंसी फ्रेमवर्क नहीं है और कोई अन्य तकनीक नहीं है।
मैं वास्तव में क्या चाहता हूं कि जब पहली बार मेरा आवेदन एप्लिकेशन सर्वर पर तैनात किया जा रहा है और यह पहला अनुरोध जो केवल प्राप्त होता है, केवल उस अनुरोध के लिए (केवल 1 बार) मेरा सर्वलेट 1 प्राप्त करने जा रहा है TABLE A
से मिलियन रिकॉर्ड, इन रिकॉर्ड के साथ कक्षाए को मानचित्रित करते हैं और ClassA
के लिए ऑब्जेक्ट्स को पॉप्युलेट करना शुरू करते हैं और उन्हें वेक्टर या ArrayList
में रखते हैं, क्योंकि आप समझ सकते हैं कि मेरे Vector/ArrayList
में अब 1 मिलियन ऑब्जेक्ट्स होंगे जिसमें प्रत्येक ऑब्जेक्ट record/tupple
का प्रतिनिधित्व करेगा "TableA"
।
ठीक है, अब असली और कठिन हिस्सा करने के लिए आते हैं, मैं, इस Vector/ArrayList
आवेदन संदर्भ के लिए या वी एम के लिए या किसी अन्य स्मृति भंडारण स्थान के लिए (जो वास्तव में मैं नहीं जानता) stored/persisted/added
होना चाहते हैं तो हर बार मेरा जेएसपी pages/Servlets
डेटा प्राप्त करने की याद में ऑब्जेक्ट तक पहुंच रहा है और हर बार डेटाबेस को मार नहीं रहा है।
क्यों इस तरह के HSQLDB के रूप में एक में स्मृति डेटाबेस का उपयोग नहीं , जो एक कैश के रूप में कार्य करेगा और आप अपने पसंदीदा एसक्यूएल कथन का उपयोग कर सकते हैं - इसे अपने एप्लिकेशन प्रारंभिक समय पर पॉप्युलेट करें। अन्य विकल्प कैश समाधान जैसे जेबॉस infinispan का उपयोग करना है। –