2013-01-14 15 views
5

मेरे पास "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 डेटा प्राप्त करने की याद में ऑब्जेक्ट तक पहुंच रहा है और हर बार डेटाबेस को मार नहीं रहा है।

+0

क्यों इस तरह के HSQLDB के रूप में एक में स्मृति डेटाबेस का उपयोग नहीं , जो एक कैश के रूप में कार्य करेगा और आप अपने पसंदीदा एसक्यूएल कथन का उपयोग कर सकते हैं - इसे अपने एप्लिकेशन प्रारंभिक समय पर पॉप्युलेट करें। अन्य विकल्प कैश समाधान जैसे जेबॉस infinispan का उपयोग करना है। –

उत्तर

2

आप स्प्रिंग भी किसी तरह से मदद करता है लेकिन यकीन नहीं है कि यह मदद मिलेगी नहीं में जावा कैशिंग प्रणाली (see here) या ehcache उपयोग करने के लिए (see here) कैश में डाटा स्टोर करने नियंत्रण की, उलट है ढेर में 1 मिलियन डेटा स्टोर करने के लिए, जैसे हीप मेमोरी सीमित है।

1

ऐसा लगता है कि आपको सही होने पर आपको कैशिंग की आवश्यकता है। मैं EHcache या Infinispan पर एक नज़र डालने की सलाह दूंगा।

आशा इस

0

में मदद करता है मुझे लगता है कि आप किसी तरह से अपने वस्तुओं को कैश करने के लिए देख रहे हैं।

आप ehcache

या को देखने के लिए चाहते हो सकता है,

जब से तुम बड़ी वस्तुओं आप वस्तु भंडार की तरह लागू करने पर ध्यान कर सकते हैं, noDB

संबंधित मुद्दे