เท่าที่ฉันรู้อยู่ข้างหลังคือBerkeley DBซึ่งเป็นฐานข้อมูลคีย์ / ค่า daemonless ตามลิงค์สำหรับข้อมูลเพิ่มเติม สารสกัดจาก Wikipedia:
Berkeley DB (BDB) เป็นไลบรารีซอฟต์แวร์ที่มีวัตถุประสงค์เพื่อจัดเตรียมฐานข้อมูลแบบฝังที่มีประสิทธิภาพสูงสำหรับข้อมูลคีย์ / ค่า Berkeley DB เขียนด้วย C พร้อมการเชื่อม API สำหรับ C ++, C #, Java, Perl, PHP, Python, Ruby, Smalltalk, Tcl และภาษาการเขียนโปรแกรมอื่น ๆ อีกมากมาย BDB เก็บคู่ของคีย์ / ข้อมูลตามอำเภอใจเป็นอาร์เรย์ไบต์และสนับสนุนรายการข้อมูลหลายรายการสำหรับคีย์เดียว Berkeley DB ไม่ใช่ฐานข้อมูลเชิงสัมพันธ์
ตำแหน่งของฐานข้อมูลใน RHEL / CentOS คือ/var/lib/mlocate/mlocate.db
(ไม่แน่ใจเกี่ยวกับการแจกแจงอื่น ๆ ) คำสั่งlocate --statistics
จะให้ข้อมูลเกี่ยวกับสถานที่และสถิติของฐานข้อมูล (ตัวอย่าง):
Database /var/lib/mlocate/mlocate.db:
16,375 directories
242,457 files
11,280,301 bytes in file names
4,526,116 bytes used to store database
สำหรับรูปแบบ mlocate ที่นี่เป็นหัวหน้าคน:
ฐานข้อมูล mlocate เริ่มต้นด้วยส่วนหัวของไฟล์: 8 ไบต์สำหรับหมายเลขเวทย์มนตร์ ("\ 0mlo - cate" เช่นตัวอักษร C), 4 ไบต์สำหรับขนาดบล็อกการกำหนดค่าใน endian ใหญ่ 1 ไบต์สำหรับเวอร์ชันรูปแบบไฟล์ (0), 1 ไบต์สำหรับแฟล็ก“ ต้องการการมองเห็น” (0 หรือ 1), ช่องว่างภายใน 2 ไบต์และชื่อพา ธ ที่ยกเลิกด้วย NUL ของรูทของฐานข้อมูล
ส่วนหัวตามด้วยบล็อกการตั้งค่ารวมอยู่ด้วยเพื่อให้แน่ใจว่าฐานข้อมูลจะไม่ถูกนำมาใช้ซ้ำหากการเปลี่ยนแปลงการกำหนดค่าบางอย่างอาจส่งผลต่อเนื้อหาของพวกเขา ขนาดของบล็อกการกำหนดค่าในหน่วยไบต์จะถูกเก็บไว้ในส่วนหัวของไฟล์ บล็อกการกำหนดค่าเป็นลำดับของการกำหนดตัวแปรเรียงลำดับโดยชื่อตัวแปร การมอบหมายแต่ละตัวแปรสามารถประกอบด้วยชื่อตัวแปรที่ยกเลิก NUL และรายการที่เรียงลำดับแล้วของค่าที่สิ้นสุดด้วย NUL รายการค่าถูกยกเลิกด้วยอักขระ NUL อีกหนึ่งตัว การเรียงลำดับที่ใช้ถูกกำหนดโดยฟังก์ชัน strcmp ()