Theo như tôi biết đằng sau là Berkeley DB là cơ sở dữ liệu không có khóa / giá trị. Theo liên kết để biết thêm. Trích từ Wikipedia:
Berkeley DB (BDB) là một thư viện phần mềm nhằm cung cấp cơ sở dữ liệu nhúng hiệu năng cao cho dữ liệu khóa / giá trị. Berkeley DB được viết bằng C với các ràng buộc API cho C ++, C #, Java, Perl, PHP, Python, Ruby, Smalltalk, Tcl và nhiều ngôn ngữ lập trình khác. BDB lưu trữ các cặp khóa / dữ liệu tùy ý dưới dạng các mảng byte và hỗ trợ nhiều mục dữ liệu cho một khóa. Berkeley DB không phải là một cơ sở dữ liệu quan hệ.
Vị trí của cơ sở dữ liệu trong RHEL / CentOS là /var/lib/mlocate/mlocate.db
(không chắc chắn về các bản phân phối khác). Lệnh locate --statistics
sẽ cung cấp cho bạn thông tin về vị trí và một số thống kê về cơ sở dữ liệu (ví dụ):
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
Đối với định dạng mlocate ở đây là phần đầu của trang man:
Cơ sở dữ liệu mlocate bắt đầu bằng tiêu đề tệp: 8 byte cho số ma thuật ("\ 0mlo- cate" như chữ C), 4 byte cho kích thước khối cấu hình ở cuối lớn, 1 byte cho phiên bản định dạng tệp (0), 1 byte cho các yêu cầu hiển thị cờ cờ cờ (0 hoặc 1), đệm 2 byte và tên đường dẫn kết thúc NUL của thư mục gốc của cơ sở dữ liệu.
Tiêu đề được theo sau bởi một khối cấu hình, bao gồm để đảm bảo cơ sở dữ liệu không được sử dụng lại nếu một số thay đổi cấu hình có thể ảnh hưởng đến nội dung của chúng. Kích thước của khối cấu hình tính bằng byte được lưu trữ trong tiêu đề tệp. Khối cấu hình là một chuỗi các bài tập biến, được sắp xếp theo tên biến. Mỗi phép gán có thể bao gồm một tên biến kết thúc NUL và một danh sách được sắp xếp của các giá trị kết thúc NUL. Danh sách giá trị được chấm dứt bởi một ký tự NUL nữa. Thứ tự được sử dụng được xác định bởi hàm strcmp ().