Kacam.net

डेटाबेस

翻到第 5000 页

LIMIT 20 OFFSET 100000 —— 它是怎么找到第 100001 行的?

प्रॉम्प्ट कॉपी करें, फिर कोई एक मॉडल चुनें। वह जवाब थमाने के बजाय इंटरव्यू लेने वाले की तरह दृश्य दर दृश्य आपसे पूछेगा।

ChatGPT Claude DeepSeek 豆包 Kimi Gemini

जिस फ़ोन में ऐप लगा है, वहाँ सिस्टम सीधे ऐप खोल देगा। WeChat के अंदर बाहरी ऐप नहीं खुलते — पहले ब्राउज़र में खोलें।

कॉपी किए हुए पाठ के आख़िर में वही उत्तर-कुंजी है जिससे मॉडल आपको आँकता है। पहले खुद न पढ़ें — खुद तक पहुँचना ही असली बात है।

答案朴素得让人不舒服:一条条数过去。知道这一句之后,「为什么加了索引还是慢」「为什么第一页快最后一页慢」就都不用问了。

但这一份的一半重量在另一边:换成游标分页之后你放弃了什么。跳页没了、总页数没了、收藏的「第 37 页」也没了 —— 说不出这几条的,只是抄了一个方案。收尾时它会把「只说了技术代价」的地方单独标出来。

最后还问一句很少有人问的:到底是谁在翻第 5000 页?

★★★☆☆ · लगभग 30 मिनट · क्या परखा जाता है: OFFSET 的线性代价、复合游标、跳页与总数的取舍、COUNT 的代价

यह किस चीज़ का अभ्यास है

पेजिनेशन और पैमाना एग्ज़ीक्यूशन प्लान

यह वाला कर चुके हैं?

साइन इन करके दर्ज करें कि यह अभ्यास कर लिया — अगली बार दिखेगा कि किस दिन किया था।

जिन्होंने यह किया, उनके नोट

अभी किसी ने नहीं लिखा। करने के बाद बताइए कि बातचीत से क्या निकला — किस दृश्य पर अटके, कौन-सा नतीजा बाद में बदला।

नोट लिखने के लिए साइन इन।

इसे कैसे इस्तेमाल करें

यह श्रृंखला सीखने के लिए है: यह राह दिखाती है, कोने में नहीं धकेलती। अटकने पर पहले पूछती है कि किस परत पर अटके हैं (कभी सुना ही नहीं / जानता हूँ पर क्यों नहीं जानता / क्यों जानता हूँ पर लगा नहीं पाता), फिर तय करती है कि क्या देना है। दो बार राह दिखाने के बाद ही सीधे बताती है, और फिर आपसे अपने शब्दों में दोहराने को कहती है।

डिफ़ॉल्ट रूप से यह MySQL / InnoDB के हिसाब से बात करती है —— यहाँ आधे जाल कार्यान्वयन की बारीकियाँ हैं, और क्लस्टर्ड इंडेक्स, टेबल पर वापस जाना और गैप लॉक दूसरी जगह अलग तरह से काम करते हैं। PostgreSQL या कोई और भी चलेगा: पहली ही पंक्ति में बता दें, यह उसी के हिसाब से चलेगी और जहाँ निष्कर्ष बदलते हैं वहाँ बता देगी।

कैसे शुरू करें

  1. एक चुनें, खोलें, प्रॉम्प्ट कॉपी करें।
  2. उसे एक नई खाली चैट में चिपकाएँ और पहली पंक्ति में बताएँ कि कौन-सा डेटाबेस और कौन-सा संस्करण है (न बताएँ तो MySQL 8 मान लिया जाएगा)।
  3. फिर कुछ न कहें और उसके पहले सवाल का इंतज़ार करें।

बीच में कभी भी बोले जा सकने वाले चार शब्द

  • 跳过 तुरंत अगले दृश्य पर
  • 换个说法 इस बिंदु को दूसरे कोण से फिर समझाओ
  • 直说吧 पूरा उत्तर बताओ, फिर मुझसे दोहरवाओ
  • 复盘 सीधे समापन कार्ड पर जाओ

तीन जाल

  • अंत की उत्तर-कुंजी पहले न पढ़ें —— «आम ग़लतफ़हमियाँ» वाला हिस्सा ही हर सवाल का जवाब है।
  • संख्याएँ पूछे जाने के लिए तैयार रहें। «थोड़ा तेज़», «IO बचता है» वहीं काट दिया जाएगा: कितनी पंक्तियाँ? कितनी बार? कितने गुना? बिना संख्या वाला निष्कर्ष रटा हुआ है।
  • जैसे ही यह तारीफ़ शुरू करे, «मेरी तारीफ़ मत करो» वाला नियम याद दिलाएँ। राह दिखाना दुलारना नहीं है।

कंपोजिट इंडेक्स वाली से शुरू करें: यही इस श्रृंखला की नींव है, «लॉक इंडेक्स रिकॉर्ड पर लगते हैं» और «यह इतनी पंक्तियाँ क्यों पढ़ रहा है» दोनों उसी एक वाक्य पर टिके हैं। प्रोडक्शन में कंकरेंसी काट रही हो तो «पढ़कर फिर बदलना» से शुरू करें; क्वेरी धीमी हों तो एग्ज़ीक्यूशन प्लान वाली से।