पृष्ठ पर अंक लगाना सर्वर लोड को कम करता है? (सिद्धांत)


11

मैं सोच रहा था कि पेजिंग के पीछे क्या कारण है? क्या इसका उपयोग किया जाता है क्योंकि यह सर्वर पर बोझ को कम करता है क्योंकि हम तकनीकी रूप से प्रति पृष्ठ लौटे पंक्तियों की मात्रा को सीमित करेंगे?

मैं बिना किसी तर्क के कुछ करना चाहता था, लेकिन यह देखते हुए कि मैं इसके लिए नया हूं (मैं एक शौकिया हूं) सोच रहा था कि इसकी तकनीकी रूप से ठीक है या नहीं।


क्या आप वास्तव में इस साइट पर "प्रश्न" पर क्लिक करने पर आपके द्वारा सवाल के हजारों पंक्तियों को डाउनलोड करने और रेंडर करने के लिए अपने ब्राउज़र का इंतजार करना चाहते हैं?
जेरेमी

3
डीबी की तुलना में मनुष्यों के लिए पृष्ठांकन अधिक है।
मालफिस्ट

जवाबों:


10

पेजिंग होने के कई कारण हैं, सर्वर लोड को कम करना सिर्फ एक है। हालांकि, स्टीफन ऑर एक वैध बिंदु उठाता है - आपको अभी भी पहले डेटा की मात्रा खोजने की आवश्यकता है। आप यह सुनिश्चित करें कि करना है कि क्वेरी तुरंत हो जाती है और अनावश्यक रूप से अपने सर्वर लोड नहीं करता है।

अन्य कारणों में शामिल हैं:

  • एक बार में ग्राहक को लौटाए गए डेटा की मात्रा को कम करना। यदि आपके पास बहुत अधिक डेटा है तो यह कुछ समय ले सकता है और बहुत सारी मेमोरी ले सकता है।
  • उपयोगकर्ता अक्सर सभी डेटा में दिलचस्पी नहीं रखता है , लेकिन केवल सबसे हाल ही में (कहता है)। डेटा के केवल कुछ पृष्ठों को वापस करने से आपको डेटा नहीं मिल रहा है जिसे उपयोगकर्ता कभी नहीं देख सकता है।

इन दोनों मामलों में आप उपयोगकर्ता को प्रतीक्षा नहीं करना चाहते हैं - या तो डेटा के लिए वे देखने नहीं जा रहे हैं, या सभी डेटा के लिए जब वे इसके कुछ प्रसंस्करण के साथ एक हो सकते हैं।


2
+1 मैं भी कुछ ऐसा ही लिख रहा था, लेकिन आप बहुत तेज थे। मुझे सिर्फ इतना कहना है कि पेजिंग कंटेंट भी अधिक जोड़ने के तरीके के रूप में इस्तेमाल किया जाता है।
यानिस

आप यह पता किए बिना पेज भी बना सकते हैं कि कितने पृष्ठ हैं, यह जानना कि वर्तमान पृष्ठ फिट होने की तुलना में अधिक डेटा है।
कार्लो कुईप

3

यह कार्यान्वयन के आधार पर भिन्न होता है।

यह एक पृष्ठ के प्रतिपादन को गति देगा, लेकिन यह सर्वर पर लोड को कम नहीं करेगा। अधिकांश भोली भाषा के एल्गोरिदम को यह तय करने के लिए पहले एक क्वेरी करने की आवश्यकता है कि "पृष्ठांकित" परिणाम सेट प्राप्त करने के लिए फिर से कितने पृष्ठ होने चाहिए।


अधिकांश भोले भगाने वाले एल्गोरिदम को यह तय करने के लिए पहले एक क्वेरी करने की आवश्यकता है कि कितने पृष्ठ होने चाहिए : लेकिन गिनती क्वेरी के db पर संचित तनाव और पृष्ठबद्ध परिणाम क्वेरी लगभग हमेशा एक सामान्य परिदृश्य में सब कुछ प्राप्त क्वेरी से कम है। (एक अच्छी तरह से संरचित रिलेशनल डेटाबेस के साथ)
यानिनिस

@YannisRizos, बिल्कुल। मैंने बस इसके अंधेरे पक्ष को देखा है, एक अविश्वसनीय रूप से बुरी तरह से संरचित रिलेशनल डेटाबेस के साथ (हमारे कई प्रश्न परिणाम प्राप्त करने के लिए 7 या 8 अलग-अलग तालिकाओं में शामिल हैं)।
स्टीव हिल

@YannisRizos: "db पर तनाव" को परिभाषित करें। आप अभी भी पूरी लाइन में दो प्रश्नों को हटा रहे हैं। क्या आप क्वेरी (एक पंक्ति-चयन सुपर) में पेजिंग कर रहे हैं, या किसी अन्य स्तर पर परिणाम कैशिंग कर रहे हैं? वहाँ बहुत सारे चर कह रहे हैं कि बहुत अधिक db तनाव है। मैं इस बात का प्रतिवाद करूंगा कि ठीक से एक लेन-देन के अर्थ में किया जाता है (क्या आप पृष्ठों में एक गंदे पढ़ने / असंगत गणना की अनुमति देते हैं?) Db "तनाव" / लोड को बढ़ाता है लेकिन प्रोग्रामिंग को सरल करता है।
जे क्यू कतार

@Xepoch मैंने बहुत अधिक तनाव नहीं कहा, बस यह है कि किसी भी गिनती के अलावा एक सीमित चयन <पूर्ण चयन। और यह केवल आम परिदृश्यों के लिए अच्छी तरह से संरचित संबंधपरक डीबीएस पर है।
यानिस

1

आपके द्वारा पृष्ठांकन से प्राप्त होने वाला सबसे अधिक मूल्य आपके आवेदन की गति को बढ़ा रहा है:

1 - क्लाइंट और सर्वर के बीच प्रेषित डेटा को सीमित करना। अगर उपयोगकर्ता उनमें से 10 की तलाश कर रहा है तो 1000000 ग्राहकों को पढ़ने का कोई मतलब नहीं है।

2- केवल उपयोगकर्ता को देखने में फिट हो सकने वाली पंक्तियों को पुनः प्राप्त करके क्वेरी के प्रदर्शन में तेज़ी लाना। 1000000 ग्राहकों को पढ़ने का कोई मतलब नहीं है यदि उपयोगकर्ता पहले 10 ग्राहकों को देखेगा।

3 - अधिक ताजा डेटा प्रदान करके पेजिनेशन मदद करता है। यदि आपका एप्लिकेशन कई डेटा पंक्तियों को दिखाता है और आपके एप्लिकेशन डोमेन को प्रदर्शित तालिका में डेटा पंक्तियों के लिए बहुत सारे अपडेट की आवश्यकता होती है, तो संभावना है कि जब तक आप पृष्ठों की सूची के पृष्ठ 20 पर जाते हैं, तब तक कुछ पंक्तियों का डेटा रहा होगा। बदला हुआ। एक आवेदन के बारे में सोचो जो एक होटल में स्टॉक की कीमतों या उपलब्ध कमरों को पढ़ता है। पुराने डेटा को पुनः प्राप्त करना और क्लाइंट पर रखना किसी काम का नहीं है।

पृष्ठांकन एक रणनीति है जिसे फ़िल्टर करने और आपकी समझ के साथ संयोजन की आवश्यकता है कि अंतिम उपयोगकर्ता को विशेष परिदृश्य से (जो इस आवश्यकता को पूरा करने के लिए एक अच्छा डिज़ाइन करने के लिए नेतृत्व करने की उम्मीद है) विशेष रूप से कई उपयोगकर्ताओं के डेटाबेस को मार रहा है, तो आवेदन को बहुत बढ़ा देगा। समवर्ती।

पेजेशन हमेशा प्रोग्राम के लिए मामूली नहीं है। कुछ मामलों में यह सरल है लेकिन कभी-कभी यह लिखना बहुत जटिल होता है ताकि SQL क्वेरी पूर्ण तालिका स्कैन किए बिना निष्पादित हो। यह निश्चित रूप से आपके अनुक्रमित, फ़िल्टर स्थिति और आपके कहां कथन पर निर्भर करता है।


-4

मेरे दिमाग में, शिथिलता, सभी समय से पहले अनुकूलन की माँ है। पेजिंग के बिना अपनी साइट लिखना बिल्कुल ठीक है।

यदि आप रिलीज़ के बाद पाते हैं, कि आप एक कॉल में बहुत अधिक डेटा लोड कर रहे हैं, या आपके उपयोगकर्ताओं को इस जानकारी के लिए प्रतीक्षा करनी पड़ रही है कि वे ऐसा करना चाहते हैं क्योंकि यह व्यस्त डेटा लोड नहीं करना चाहते हैं, तो वे आगे बढ़ें और एक अजाक्स समाधान लिखें जो केवल पृष्ठ को लोड करता है जैसे लोग स्क्रॉल करते हैं (देखें: ट्विटर, टम्बलर, Google छवि खोज)।

संपादित करें: ऊपर दिया गया दूसरा पैराग्राफ इस धारणा के साथ लिखा गया था कि एक सामान्य प्रतिक्रिया होगी "लेकिन अगर आप जानते हैं कि आप किसी बिंदु पर पृष्ठांकित करने जा रहे हैं, तो आप इसे जल्दी कर सकते हैं, बजाय समय बर्बाद करने के, जो आप फेंकने जा रहे हैं। दूर। "

सभी समयपूर्व आशाओं की मां होने के साथ-साथ, मुझे लगता है कि पेजेशन एक UX दुःस्वप्न है और बेहतर समाधान हैं , जिन्हें पूर्ण पृष्ठ के शीर्ष पर बहुत अतिरिक्त विकास की आवश्यकता नहीं होगी।

डाउनवोट की संख्या के बावजूद, मैं इस उत्तर को यहां छोड़ रहा हूं क्योंकि मैं भावना से खड़ा हूं, भले ही यह मेरा सर्वश्रेष्ठ लेखन नहीं रहा हो।


5
मैं इस कथन से पूरी तरह असहमत हूं, डीबी के अनुकूलन के लिए पेजिनेशन नहीं है, यह मनुष्यों को प्रबंधनीय विखंडू में डेटा प्रदान करने के बारे में है। क्या आप हैरी पॉटर को पढ़ पाएंगे अगर यह सब एक पेज पर होता? यदि टैक्स कोड एक पेज पर होता तो क्या आप टैक्स फाइल कर सकते थे?
मालफिस्ट

@Malfist: केवल एक ही कारण आप उन चीजों को एक पृष्ठ पर नहीं संभाल सकते हैं क्योंकि पेज स्वयं बहुत बड़ा होगा। यह वेब पेज में कोई समस्या नहीं है। इसलिए मैंने जिन साइटों का हवाला दिया है, वे पेजिनेशन के लिए बेहतर समाधान पा चुकी हैं, जबकि लॉलाट्स के पास वर्तमान में लगभग 2000 पृष्ठ हैं जो किसी भी समझदार तरीके से पेजेट करना असंभव है। लेकिन, यह आपकी नीचता है, आप इसका उपयोग करेंगे।
पीडीआर

1
@ मल्फ़िस्ट: इसके अलावा, प्रबंधनीय विखंडू में चीजों को विभाजित करना काफी उचित है यदि उन विखंडू को स्थानांतरित नहीं किया जाता है। अगर मैं पेज 1-4 पढ़ता हूं तो मैं अगली बार वापस आना चाहता हूं और पेज 5 को पढ़ना चाहता हूं। लेकिन बहुत सारे मामलों में, पृष्ठबद्ध वेबसाइटें आइटमों की सूची हैं, जिनमें सबसे हाल ही में पहला है। इसलिए जब मैं बाद में पेज 5 पर वापस जाता हूं, तो यह वास्तव में पेज 3 का आधा हिस्सा और पिछली बार के पेज 4 का आधा हिस्सा होता है, क्योंकि मैं सूची में नया 1.5 पेज था।
pdr

2
-1 जैसा कि मैं इससे भी असहमत हूं। मुझे यह भी पता नहीं है कि मुझे समझाना क्यों शुरू करना है।
13

@ क्रेजी: ठीक है, ठीक है। मैं निश्चित रूप से उस पर ज्यादा तर्क नहीं दे पा रहा हूं।
पीडीआर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.