2012-03-30 45 views
11

Tôi muốn hiểu thêm về kiến ​​trúc hệ thống và DB của MongoDB.Kiến trúc cơ sở dữ liệu MongoDB

Tôi đang cố gắng hiểu cách MongoDB lưu trữ và truy xuất tài liệu. Nếu tất cả trong bộ nhớ, vv

Một phân tích so sánh giữa MongoDB và Oracle sẽ là tiền thưởng nhưng, tôi chủ yếu tập trung vào việc hiểu kiến ​​trúc MongoDB.

Mọi con trỏ sẽ hữu ích.

+0

Tôi không thể yêu cầu trở thành chuyên gia, nhưng chắc chắn nhất ghi vào đĩa (không chắc chắn khi nào/tần suất/cho dù nó luôn luôn tuôn ra). Trong thực tế, nó giật một chút không gian (có khả năng làm chỉ mục của nó tôi đoán) –

+0

Như một sự so sánh thực sự vượt trội, các đối số lớn nhất tôi đã nghe thấy giữa nó và một db quan hệ truyền thống (như Oracle hoặc MS SQL Server hoặc MySQL) là một trong những giao dịch/độ tin cậy và cực đoan. Nếu bạn không bị mất ngủ vào ban đêm nếu một số dữ liệu của bạn bị chuyển vào thùng rác, các tùy chọn NoSQL như Mongo rất hiệu quả và có thể chia tỷ lệ thành * nhiều * người dùng đồng thời. Nếu bạn * cần * đảm bảo về dữ liệu của bạn, mặc dù, bây giờ bạn có lẽ tốt hơn off gắn bó với dbs giao dịch. –

+0

Câu hỏi này có thể rộng hơn một chút so với các hướng dẫn cho các câu hỏi về quy định của SO. Tôi khuyên bạn nên truy cập tài liệu mongodb và đọc tài liệu mà họ cung cấp. Sở thích cụ thể sẽ là: http://www.mongodb.org/display/DOCS/Architecture+and+Components, http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+ Biểu đồ, http://www.mongodb.org/display/DOCS/Production+Notes Tôi hy vọng điều này sẽ hữu ích. – marr75

Trả lời

18

Bộ nhớ MongoDB ánh xạ các tệp cơ sở dữ liệu. Nó cho phép hệ điều hành kiểm soát điều này và phân bổ số lượng RAM tối đa cho bản đồ bộ nhớ. Khi MongoDB cập nhật và đọc từ DB nó đang đọc và ghi vào RAM. Tất cả các chỉ mục trên các tài liệu trong cơ sở dữ liệu cũng được giữ trong RAM. Các tập tin trong bộ nhớ RAM được flushed vào đĩa mỗi 60 giây. Để ngăn chặn mất dữ liệu trong trường hợp mất điện, mặc định là để chạy với nhật ký được bật. Các tập tin tạp chí được flushed vào đĩa mỗi 100ms và nếu có mất điện được sử dụng để mang lại cho cơ sở dữ liệu trở lại trạng thái nhất quán. Một quyết định thiết kế quan trọng với mongo là số lượng RAM. Bạn cần phải tìm ra kích thước tập làm việc của bạn - nghĩa là nếu bạn sẽ đọc và viết chỉ 10% dữ liệu gần đây nhất trong cơ sở dữ liệu thì 10% này là bộ làm việc của bạn và phải được giữ trong bộ nhớ để có hiệu suất tối đa . Vì vậy, nếu bộ làm việc của bạn là 10GB, bạn sẽ thấy 10GB cho hiệu suất tối đa - nếu không truy vấn/cập nhật của bạn sẽ chạy chậm hơn vì các trang của bộ nhớ được phân trang từ đĩa vào bộ nhớ. Các khía cạnh quan trọng khác của mongoDB là sao chép để sao lưu và sharding cho việc mở rộng quy mô. Có rất nhiều tài nguyên trực tuyến tuyệt vời để học tập. MongoDB là miễn phí và mã nguồn mở.

EDIT: Đó là một ý tưởng tốt để kiểm tra hướng dẫn http://www.mongodb.org/display/DOCS/Tutorial và bằng tay http://www.mongodb.org/display/DOCS/Manual và Khu quản lý rất hữu ích quá http://www.mongodb.org/display/DOCS/Admin+Zone và nếu bạn cảm thấy buồn chán khi đọc thì phần trình bày có giá trị kiểm tra ra. http://www.10gen.com/presentations

+0

cảm ơn thông tin. Tôi thực sự đang tìm kiếm thông tin trên dòng câu trả lời của bạn. Nó sẽ là tuyệt vời để có được chi tiết tương tự. Bạn có thể chỉ cho tôi bất kỳ tài nguyên trực tuyến nào có cấu trúc/desgin nội bộ MongoDB không? – Ayusman

+0

nhân rộng cho đọc/truy vấn mở rộng quy mô là tốt (không chỉ sao lưu). –

+0

Bạn có nghĩ rằng điều này trả lời câu hỏi của bạn hay bạn cần thêm trợ giúp? – Gregor

Các vấn đề liên quan