Tôi đang viết một điều kiểu cơ sở dữ liệu trong C (nghĩa là nó sẽ lưu trữ và hoạt động trên khoảng 500.000 bản ghi). Tôi sẽ được chạy nó trong một môi trường hạn chế bộ nhớ (VPS) vì vậy tôi không muốn sử dụng bộ nhớ để bóng. Tôi sẽ không xử lý một lượng lớn dữ liệu - có lẽ lên tới 200MB, nhưng tôi muốn bộ nhớ còn lại trong khu vực 30MB (kéo những con số này ra khỏi không khí).Tôi có nên quản lý các trang hoặc chỉ dựa vào bộ nhớ ảo không?
Bản năng của tôi là xử lý trang của riêng tôi (cơ sở dữ liệu thực hiện điều này), nhưng tôi đã nhận được lời khuyên rằng tôi chỉ nên phân bổ tất cả và cho phép hệ điều hành thực hiện phân trang VM cho tôi. Các con số của tôi sẽ không bao giờ tăng lên trên bậc độ lớn này. Lựa chọn nào tốt nhất trong trường hợp này?
Giả sử lựa chọn thứ hai, tại thời điểm nào nó sẽ hợp lý để chương trình thực hiện phân trang riêng? Rõ ràng RDBMsses có thể xử lý gigabyte phải làm điều này, nhưng phải có một điểm dọc theo quy mô mà tại đó các câu hỏi là giá trị yêu cầu.
Cảm ơn!
chỉ có câu trả lời hợp lý. "Tối ưu hóa sớm là gốc rễ của tất cả các điều ác". –
Mọi người đều thích dòng đó. Ở đây tôi có xu hướng đồng ý với @Matt Joiner nhưng có một thời gian để bắt đầu với phân trang của riêng bạn. Nếu anh ta biết anh ta sẽ làm việc với các tập dữ liệu lớn thì nó thực sự có ý nghĩa để bắt đầu với phân trang hơn là lãng phí thời gian vào một giải pháp ngây thơ. – BobbyShaftoe
Nahhh, không có gì đảm bảo rằng "triển khai" đầu tiên của bạn thậm chí sẽ nhanh hơn "mặc định". Bạn cũng có thể bắt đầu ở phía dưới, có thể là phần trên cùng, hoặc hầu hết mọi thứ bạn đã biết cho đến khi bạn bắt đầu lược tả và tinh chỉnh từ một giải pháp làm việc. Tuy nhiên hãy ghi nhớ, hoàn toàn không có lý do chính đáng bạn không thể cẩn thận thiết kế nó, giữ hiệu suất, và tối ưu hóa thuật toán trong tâm trí từ nhận được đi. Nhưng tôi sẽ không để điều đó phát sinh chi phí thời gian phát triển cho đến khi một giải pháp làm việc có thể cung cấp một sự kiểm soát để so sánh. –