ฐานข้อมูลเก็บค่าคีย์ดัชนี (บนดิสก์) สำหรับฟิลด์ความยาวผันแปรได้อย่างไร
บริบท คำถามนี้เกี่ยวข้องกับรายละเอียดการใช้งานระดับต่ำของดัชนีในระบบฐานข้อมูล SQL และ NoSQL โครงสร้างที่แท้จริงของดัชนี (B + tree, hash, SSTable และอื่น ๆ ) นั้นไม่เกี่ยวข้องเนื่องจากคำถามนั้นเกี่ยวข้องกับคีย์ที่เก็บอยู่ในโหนดเดียวของการใช้งานเหล่านั้น พื้นหลัง ใน SQL (เช่น MySQL) และ NoSQL (CouchDB, MongoDB, ฯลฯ ) ฐานข้อมูลเมื่อคุณสร้างดัชนีในคอลัมน์หรือสาขาเอกสาร JSON ของข้อมูลสิ่งที่คุณกำลังจริงทำให้เกิดฐานข้อมูลในการทำคือการสร้างหลักรายการที่เรียงลำดับทั้งหมด ค่าเหล่านั้นพร้อมกับไฟล์ออฟเซ็ตลงในไฟล์ข้อมูลหลักที่บันทึกที่เกี่ยวข้องกับค่านั้นอยู่ (เพราะความเรียบง่ายฉันอาจโบกมือให้รายละเอียดที่ลึกลับอื่น ๆ ของความหมายเฉพาะ) ตัวอย่าง SQL แบบง่าย ๆ พิจารณาตาราง SQL มาตรฐานที่มีคีย์หลักแบบง่าย 32 บิตที่เราสร้างดัชนีในเราจะจบลงด้วยดัชนีบนดิสก์ของคีย์จำนวนเต็มเรียงและเชื่อมโยงกับออฟเซต 64 บิตลงในไฟล์ข้อมูลที่ บันทึกชีวิตเช่น: id | offset -------------- 1 …