1, MongoDB là gì?
-MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở thuộc học NoSQL. Nó được thiết kế theo kiểu hướng đối tượng, các bảng trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ trên bảng không cần tuân theo một cấu trúc nhất định nào cả (điều này rất thích hợp để làm big data).
-MongoDB lưu trữ dữ liệu theo hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh.
2, Ưu điểm của mongoDB.
- Schema linh hoạt: Do MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau.
- Cấu trúc đối tượng rõ ràng: Tuy rằng cấu trúc của dữ liệu là linh hoạt nhưng đối tượng của nó được xác định rất rõ ràng.
- Sử dụng bộ nhớ nội tại, nên truy vấn sẽ rất nhanh.
- MongoDB rất dễ mở rộng.
- Không có các join: Điều này cũng góp phần tạo nên tốc độ truy vấn cực nhanh trên mongoDB.
- MongoDB phù hợp cho các ứng dụng realtime.
3, Nhược điểm của mongoDB.
- Điều đầu tiên phải kể đến ở đây là MongoDB không có các tính chất ràng buộc như trong RDBMS nên khi thao tác với mongoDB thì phải hết sức cẩn thận.
- MongoDB sử dụng sẽ hao tốn tài nguyên của hệ thống nhiều hơn RDBMS. Nhưng đến thời điểm hiện tại thì vấn đề này không còn là điều lo ngại nữa (Máy giờ trâu bò lắm rồi).
4, MongoDb với RDBMS.
-Đầu tiên, để cho dễ hiểu mình sẽ có một dữ liệu trên MySQL như sau:
-Lúc này nếu như trên mysql thì các bạn phải thực hiện tạo 2 bảng (table) để lưu trữ dữ liệu. Nhưng với MongoDB thì các bạn sẽ chỉ cần đến 1 collection để lưu trữ nó dạng như sau:
{
"_id": "_id",
"name": "name",
"price": "price",
"status": "status",
"gallery": [
{"image_path": "image_path"},
{"image_path": "image_path2"},
]
}
Sau đây là một vài so sánh sự khác nhau dữ MongoDB và RDBMS (Cơ sở dữ liệu quan hệ).
SQL DB | MongoDB |
---|---|
Table | Collection |
Row | Document |
Column | Field |
Joins | Embeded documents, linking |
Primary key | Primary key |
5, Lời kết.
-Như vậy, dựa vào các điều mình đã phân tích ở trên thì mọi người hãy tự đưa ra câu trả lời khi nào thì nên dùng MongoDB nhé!
Đăng ký nhận tin.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
Hi Admin,
Mình hiện đang có database dùng mysql khoảng hơn 60GB chiếm khoảng 6.5 GB RAM.
Vậy nếu mình chuyển sang dùng MongoDB thì thông số này có được cải thiện không?
Many thanks :D
Minh Clear
6 năm trước
Bạn muốn hỏi về thông số tài nguyên khi chuyển sang MongoDB hay là tốc độ truy vấn ạ?
Vũ Thanh Tài
6 năm trước
Sao trên Mongo mình ko tạo 2 bảng giống như trên MySQL nhờ bạn giải thích giúp?
Tu Nguyen
5 năm trước
Site của mình dùng wordpress: https://vncoupon.com
Mình muốn chuyển sang mongodb đc không?
Tu Nguyen
5 năm trước