Mọi người cho mình hỏi mongodb with mongoose và mysql thì cái nào ăn ram nhiều hơn ạ.
Mongodb with mongoose hay mysql ăn ram nhiều hơn?
Sao cậu lại so sánh cọng bún với bát phở vậy?
không, mình chỉ muốn biết khi run product lâu dài thì 2 cái đó cái nào sẽ ngốn ram hơn ý
MongoDB: NoSQL
Mongoose: Object Modeling cho MongoDB
MySQL: SQL
Thông thường NoSQL sẽ cần nhiều RAM hơn.
FYI: Singularity nhận hiệu đính CV miễn phí, tăng 20% lương của bạn nhờ có CV chuẩn quốc tế: https://resume.singularity.vn/
Chà, cậu không so sánh được đâu.
Mongo DB (database) + Mongoose (modeling library, thường dùng ở app) so sánh với MySQL (database) đã khập khiễng rồi (cậu thêm cọng bún Mongoose vào làm gì thế? ).
Kể cả cậu chỉ so sánh Mongo DB với MySQL về mặt sử dụng RAM cũng là điều không thể và không có ý nghĩa gì, bởi vì:
- Cậu cần có 1 bộ dữ liệu được tổ chức thành cả dạng bảng và dạng document. Cậu cũng phải xét tới việc index dữ liệu hợp lý giữa 2 bên, và optimize index để có benchmark tốt nhất, vì mỗi database có cách tổ chức dữ liệu và index khác nhau.
Đấy là chưa kể cost replication data nếu cậu có setup master - slave (hay primary - secondary database).
Điều đó gần như không thể làm nổi, hoặc làm với một lượng effort rất lớn. - Cậu hoàn toàn có thể limit memory usage cho cache/buffer (main memory consumption) của cả 2 Database. Vậy nên, so sánh memory consumption chẳng mang lại ý nghĩa gì cả.
- 1 database sau 1 thời gian sử dụng hầu như không sử dụng thêm bộ nhớ, trong TH chạy với lượng traffic ổn định (không tăng dần theo thời gian).
Nếu có sự tăng lên về mặt bộ nhớ được sử dụng sau một thời gian, đó được gọi là “memory leak”, và đấy là bug của DB (a.k.a cậu không kỳ vọng điều đó xảy ra trong TH thông thường).
Điều đó cũng có nghĩa là việc so sánh sau 1 thời gian dài sử dụng, 1 lần nữa, không có ý nghĩa gì cả. - Database thường được cài trên 1 server dành riêng cho nó, nên việc DB sử dụng nhiều hay ít memory chẳng ảnh hưởng tới ai cả.
Không như kiểu cậu so sánh memory consumption giữa các app ở local machine của cậu, chẳng hạn như chrome với edge, để tiết kiệm được chút bộ nhớ mà bật 1 ứng dụng nào đó khác. Thế nên, kể cả biết database nào tốn nhiều memory hơn, đó cũng không phải yếu tố để cậu chọn database phù hợp với use case của cậu.
Đó là vấn đề ở câu hỏi của cậu.
See also:
Bạn nên áp dụng A/B testing nhé. Chỉ có bạn mới tìm thấy câu trả lời mà thôi, vì cái này thuộc về vấn đề “ai ăn nấy ị”, mình chưa thấy ai có thể trả lời thay được.