Kacam.net

डेटाबेस

一次查询读了几棵树

一次查询到底读了几棵树、回表几次?

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

ChatGPT Claude DeepSeek 豆包 Kimi Gemini

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

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

「覆盖索引可以避免回表」这句话谁都背得出,但它省掉的是几次、每次贵在哪,多数人没算过。这一份全程逼数字:命中 100 行,回表 100 次,随机还是顺序。

顺带解决两个日常问题:为什么不该写 SELECT *(比「浪费带宽」实在得多的那个理由),以及用 UUID 当主键除了体积还会多出什么。

最后一幕问代价:这张表写入 QPS 3000,为了覆盖加一个四列索引,每次写多做了什么。

★★★☆☆ · लगभग 30 मिनट · क्या परखा जाता है: 聚簇索引、回表的次数与随机性、主键长度、索引的写代价

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

वापसी और कवरिंग इंडेक्स की संरचना लिखने की क़ीमत

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

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

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

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

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

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

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

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

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

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

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

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

तीन जाल

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

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