ไฟล์ SQLite คืออะไร?
ไฟล์ที่มีนามสกุล .sqlite เป็นไฟล์ฐานข้อมูล SQL ขนาดเล็กที่สร้างด้วยซอฟต์แวร์ SQLite เป็นฐานข้อมูลในไฟล์เองและใช้งานเอ็นจิ้นฐานข้อมูล SQL ที่มีอยู่ในตัวเอง มีคุณสมบัติครบถ้วน และมีความน่าเชื่อถือสูง ไฟล์ฐานข้อมูล SQLite สามารถใช้เพื่อแบ่งปันเนื้อหาที่หลากหลายระหว่างระบบโดยการแลกเปลี่ยนไฟล์เหล่านี้ผ่านเครือข่าย โทรศัพท์มือถือและคอมพิวเตอร์เกือบทั้งหมดใช้ SQLite เพื่อจัดเก็บและแบ่งปันข้อมูล และเป็นทางเลือกของรูปแบบไฟล์สำหรับแอปพลิเคชันข้ามแพลตฟอร์ม ด้วยการใช้งานที่กะทัดรัดและใช้งานง่าย จึงมาพร้อมกับแอพพลิเคชั่นอื่นๆ การเชื่อมโยง SQLite มีอยู่สำหรับภาษาการเขียนโปรแกรม เช่น C, C#, C++, Java, PHP, และอื่น ๆ อีกมากมาย.
รูปแบบไฟล์ SQLite
SQLite ในความเป็นจริงคือไลบรารีภาษา C ที่ใช้ SQLite RDBMS โดยใช้รูปแบบไฟล์ SQLite ด้วยวิวัฒนาการของอุปกรณ์ใหม่ๆ ทุกวัน รูปแบบไฟล์ของมันจึงคงความเข้ากันได้แบบย้อนกลับเพื่อรองรับอุปกรณ์รุ่นเก่า รูปแบบไฟล์ SQLite ถูกมองว่าเป็นรูปแบบการเก็บถาวรระยะยาวสำหรับข้อมูล
ไฟล์ฐานข้อมูล
ฐานข้อมูล SQLite ได้รับการดูแลอย่างสมบูรณ์ผ่านไฟล์สองไฟล์
- ไฟล์ฐานข้อมูลหลัก - มีสถานะที่สมบูรณ์ของฐานข้อมูล SQLite
- Rollback Journal - เก็บข้อมูลเพิ่มเติมในไฟล์ที่สองและใช้ในระหว่างการทำธุรกรรม ในกรณีที่ SQLite อยู่ในโหมด WAL ไฟล์บันทึกหัวเขียนจะถูกรักษาไว้
ไฟล์วารสาร
ไฟล์นี้มีจุดประสงค์เพื่อเก็บข้อมูลทั้งหมดไว้ในกรณีที่การทำธุรกรรมครั้งล่าสุดไม่สามารถทำได้ เช่น คอมพิวเตอร์ขัดข้อง ไฟล์นี้ใช้เพื่อกู้คืนไฟล์ฐานข้อมูลให้อยู่ในสถานะที่สอดคล้องกัน
หน้า
ไฟล์ฐานข้อมูล SQLite หลักประกอบด้วยหนึ่งเพจขึ้นไป ณ เวลาใดๆ ทุกหน้าในฐานข้อมูลหลักมีการใช้งานเพียงครั้งเดียว ซึ่งเป็นหนึ่งในสิ่งต่อไปนี้:
- หน้าล็อคไบต์
- หน้ารายการฟรี
- หน้าลำต้นของรายการอิสระ
- หน้าใบรายการฟรี
- หน้า b-tree
- หน้าตาราง b-tree ภายใน
- ตารางข-ต้นไม้ใบหน้า
- หน้าภายใน b-tree ดัชนี
- หน้าใบดัชนี b-tree
- หน้าล้นเพย์โหลด
- หน้าแผนที่ตัวชี้
ขนาดของไฟล์ฐานข้อมูล SQLite มีตั้งแต่ไม่กี่กิโลไบต์ไปจนถึงไม่กี่กิกะไบต์
ส่วนหัวของ SQLite
ส่วนหัวของฐานข้อมูล SQLite อยู่ใน 100 ไบต์แรกของไฟล์ฐานข้อมูล ไฟล์ฐานข้อมูล SQLite ที่ถูกต้องทุกไฟล์เริ่มต้นด้วย 16 ไบต์ (ในฐานสิบหก):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 รายละเอียดของฟิลด์ส่วนหัวมีดังในตารางต่อไปนี้
ออฟเซ็ต | ขนาด | รายละเอียด |
---|---|---|
0 | 16 | สตริงส่วนหัว: “รูปแบบ SQLite 3\000” |
16 | 2 | ขนาดหน้าฐานข้อมูลเป็นไบต์ ต้องเป็นเลขยกกำลังสองระหว่าง 512 ถึง 32768 หรือค่า 1 แทนขนาดหน้า 65536 |
18 | 1 | เวอร์ชันเขียนของรูปแบบไฟล์ 1 สำหรับมรดก; 2 สำหรับ WAL. |
19 | 1 | รูปแบบไฟล์ เวอร์ชันที่อ่าน 1 สำหรับมรดก; 2 สำหรับ WAL. |
20 | 1 | ไบต์ของพื้นที่ “สงวน” ที่ไม่ได้ใช้ที่ส่วนท้ายของแต่ละหน้า มักจะเป็น 0. |
21 | 1 | เศษส่วนของเพย์โหลดสูงสุดที่ฝังไว้ ต้องเป็น 64. |
22 | 1 | เศษส่วนของเพย์โหลดขั้นต่ำที่ฝังไว้ ต้องมีอายุ 32 ปี |
23 | 1 | ลีฟส่วนของน้ำหนักบรรทุก ต้องมีอายุ 32 ปี |
24 | 4 | ตัวนับการเปลี่ยนแปลงไฟล์ |
28 | 4 | ขนาดของไฟล์ฐานข้อมูลเป็นหน้าๆ “ขนาดฐานข้อมูลในส่วนหัว”. |
32 | 4 | หมายเลขหน้าของหน้าแรกของรายการฟรีรายการแรก |
36 | 4 | จำนวนหน้ารายการอิสระทั้งหมด |
40 | 4 | คุกกี้สคีมา |
44 | 4 | หมายเลขรูปแบบสคีมา รูปแบบสคีมาที่รองรับคือ 1, 2, 3 และ 4 |
48 | 4 | ขนาดแคชของหน้าเริ่มต้น |
52 | 4 | หมายเลขหน้าของหน้า b-tree รากที่ใหญ่ที่สุดเมื่ออยู่ในโหมดสุญญากาศอัตโนมัติหรือโหมดสุญญากาศส่วนเพิ่ม หรือเป็นศูนย์ |
56 | 4 | การเข้ารหัสข้อความของฐานข้อมูล ค่า 1 หมายถึง UTF-8 ค่า 2 หมายถึง UTF-16le ค่า 3 หมายถึง UTF-16be. |
60 | 4 | “เวอร์ชันผู้ใช้” ตามที่อ่านและตั้งค่าโดย user_version pragma |
64 | 4 | จริง (ไม่ใช่ศูนย์) สำหรับโหมดสุญญากาศส่วนเพิ่ม มิฉะนั้นจะเป็นเท็จ (ศูนย์) |
68 | 4 | “รหัสแอปพลิเคชัน” ที่กำหนดโดย PRAGMA application_id |
72 | 20 | สงวนไว้สำหรับการขยาย ต้องเป็นศูนย์ |
92 | 4 | เวอร์ชันที่ใช้ได้สำหรับหมายเลข |
96 | 4 | SQLITE_VERSION_NUMBER |