tất cả phụ thuộc vào DBMS bạn sử dụng. Nếu bạn muốn biết nó được thực hiện như thế nào trong MS SQL Server, những điều cần đọc là:
- Trang (tôi đoán chúng gần như tất cả DBMS hiện đại) - trong SQL Server là 8Kb. Tệp cơ sở dữ liệu được tạo từ các trang.
- Mức độ mở rộng - nhóm hợp lý 8 trang liên tục
- (S) GAM - (Bản đồ phân bổ toàn cầu) được chia sẻ. Bitmap chứa thông tin về các phần mở rộng miễn phí và chiếm đóng. Đây là một trong những trang đầu tiên trên tệp cơ sở dữ liệu.
- IAM - Bản đồ phân bổ chỉ mục. Bạn có thể tìm ra chỉ mục/heap nào được lưu trữ trong đó các phần mở rộng. Có thông tin này, bạn có thể lấy vị trí trong tệp nơi lưu trữ chỉ mục/heap.
Sử dụng IAM và GAM (hoặc SGAM), bạn có thể chia trang - chỉ cần di chuyển một phần của trang (được cho là tràn) đến trang khác trong tệp.
IAM và GAM cũng là câu trả lời cho câu hỏi đầu tiên của bạn.
Hầu hết các tên này được lấy từ MS SQL Server nhưng tôi khá chắc chắn, trong DBMS khác, nó được giải quyết khá giống nhau.
Hy vọng điều đó sẽ hữu ích.
Nguồn
2011-02-28 18:55:12
Có thể trùng lặp http://stackoverflow.com/questions/872070/saving-btrees-to-a-disk-file-and-read-it mặc dù câu trả lời ở đó không thực sự tốt. –
Bạn đã bao giờ tìm ra điều này chưa? Có một triển khai mã nguồn mở tốt đẹp ở đây: https://github.com/jankotek/JDBM3 nhưng phải mất thời gian để đọc qua nó. Để bắt đầu, bạn có thể xem: https://github.com/jankotek/JDBM3/blob/master/src/test/java/org/apache/jdbm/BTreeTest.java. Nếu bạn tìm thấy tài nguyên tốt hơn, vui lòng chia sẻ tài nguyên đó. – Sohaib