Link to original video by Anton Putra
MongoDB vs. PostgreSQL: Performance & Functionality

Tóm tắt ngắn:
- Video so sánh hiệu năng và chức năng giữa MongoDB và PostgreSQL khi sử dụng chúng để lưu trữ dữ liệu dạng JSON, tập trung vào việc PostgreSQL được sử dụng như một cơ sở dữ liệu hướng tài liệu.
- Các điểm chính bao gồm: sự khác biệt giữa cơ sở dữ liệu quan hệ và cơ sở dữ liệu tài liệu, so sánh hiệu năng giữa PostgreSQL (với kiểu dữ liệu JSONB) và MongoDB, tầm quan trọng của việc lập chỉ mục, và các tính năng cụ thể của MongoDB khi làm việc với JSON (ví dụ: tham gia nhiều collection). Các công cụ và nền tảng được sử dụng bao gồm AWS, Kubernetes, Grafana, Prometheus.
- Ứng dụng chính được đề cập là trang web thương mại điện tử, với các phép đo hiệu năng như độ trễ (latency) cho các thao tác CRUD (Create, Read, Update, Delete) và số lượng truy vấn mỗi giây (queries per second).
- Phương pháp được sử dụng là chạy benchmark với tải mô phỏng từ nhiều client, đo lường độ trễ, sử dụng CPU và đĩa của cả hai cơ sở dữ liệu.
Tóm tắt chi tiết:
Video được chia thành các phần chính sau:
Phần 1: Giới thiệu về cơ sở dữ liệu quan hệ và cơ sở dữ liệu tài liệu:
- Video bắt đầu bằng việc giải thích sự khác biệt giữa cơ sở dữ liệu quan hệ (RDBMS) và cơ sở dữ liệu tài liệu (NoSQL), sử dụng ví dụ về một bảng sản phẩm trong cơ sở dữ liệu quan hệ để minh họa vấn đề về lược đồ cứng nhắc và sự phức tạp khi thêm các thuộc tính mới cho sản phẩm. Việc sử dụng khóa chính và khóa ngoại trong RDBMS được giải thích chi tiết. Đây là phần đặt nền tảng cho việc so sánh sau này giữa PostgreSQL và MongoDB.
Phần 2: PostgreSQL với dữ liệu JSON và JSONB:
- Video trình bày hai lựa chọn lưu trữ JSON trong PostgreSQL: JSON (dựa trên văn bản) và JSONB (dựa trên nhị phân). JSONB được khuyến nghị vì hiệu năng tốt hơn và hỗ trợ lập chỉ mục. Video nhấn mạnh tầm quan trọng của việc lập chỉ mục (ví dụ: chỉ mục GiST cho JSONB) để cải thiện hiệu suất truy vấn.
Phần 3: So sánh hiệu năng giữa PostgreSQL (JSONB) và MongoDB:
- Phần này là trọng tâm của video, trình bày kết quả benchmark giữa PostgreSQL (với JSONB) và MongoDB. Các chỉ số được đo bao gồm độ trễ (latency) cho các thao tác CRUD, số lượng truy vấn mỗi giây, sử dụng CPU và đĩa. Video cho thấy MongoDB có hiệu năng tốt hơn đáng kể, đặc biệt là khi tải tăng cao. Một điểm đáng chú ý là PostgreSQL thực hiện nhiều thao tác đĩa hơn MongoDB. "Tôi đã chạy giống như với SQL hoặc SQL light forg cỏ của mình luôn thực hiện nhiều thao tác dis hơn so với bất kỳ thao tác nào khác cơ sở dữ liệu tôi đã so sánh nếu bạn biết lý do xin vui lòng cho tôi biết".
Phần 4: Tính năng nâng cao của MongoDB khi làm việc với JSON:
- Video đề cập đến các tính năng nâng cao của MongoDB, đặc biệt là khả năng tham gia nhiều collection (giống như join trong SQL) để thực hiện các truy vấn phức tạp. Ví dụ, việc tính tổng số lượng sản phẩm đã bán được minh họa bằng cả cách tiếp cận trong PostgreSQL (sử dụng view) và MongoDB. "mangad DB có nhiều tính năng cụ thể hơn cho tài liệu Json... bạn có thể tham gia nhiều Bộ sưu tập và truy vấn chúng tương tự như thực hiện khớp ngoài bên trái trong cơ sở dữ liệu SQL".
Phần 5: Kết luận và khuyến nghị:
- Video kết luận rằng MongoDB phù hợp hơn cho việc lưu trữ và xử lý dữ liệu JSON, đặc biệt là với các ứng dụng cần khả năng mở rộng và hiệu năng cao. Tuy nhiên, PostgreSQL với JSONB vẫn có thể được sử dụng, nhưng chỉ nên xem như giải pháp tạm thời. Video khuyến nghị sử dụng MongoDB nếu ứng dụng chủ yếu làm việc với dữ liệu JSON. "nếu bạn biết bạn sẽ chủ yếu làm việc với các đối tượng Json thì tôi thực sự khuyên bạn nên bắt đầu với manga DB ngay từ đầu, việc mở rộng quy mô theo chiều ngang cũng dễ dàng hơn."
Video sử dụng nhiều biểu đồ và số liệu để minh họa kết quả benchmark, giúp người xem dễ dàng so sánh hiệu năng của hai cơ sở dữ liệu. Mặc dù video sử dụng tiếng Việt, nhưng thuật ngữ chuyên ngành về cơ sở dữ liệu vẫn được giữ nguyên (ví dụ: JSONB, GiST index, CRUD).