Điện thoại/ Zalo
0389934723
Bài 1: MongoDB là gì?
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é!