30/09/2018, 17:56

MongoDB và mySql cái nào tốt hơn?

như câu hỏi , mình dùng cả 2 cái nhưng ko biết cái nào tốt hơn cùng chia sẻ nhé các bạn

Itachi Citus viết 20:01 ngày 30/09/2018

Mỗi cái có một ưu điểm khác nhau, mình không học bên HTTT nên chỉ biết sơ sơ thế này thôi:

  • MySql đã có một thời gian dài chứng tỏ được sự ổn định và khả năng của nó, dựa trên cơ sở dữ liệu quan hệ, truy vấn linh hoạt, hỗ trợ transaction… Nhưng khó thay đổi cấu trúc, khó scale up theo chiều ngang.
  • Mongodb có cấu trúc linh hoạt, tốc độ nhanh, dễ scale up nhưng truy vấn cực kỳ hạn chế, không hỗ trợ transaction.

Mình đã xài và mongodb không ổn, hay bị lỗi, chỉ phù hợp với ứng dụng đơn giản không có yêu cầu ràng buộc dữ liệu, toàn vẹn dữ liệu cao. NoSQL gần đây bị phản đối và chỉ trích khá nhiều và thường chỉ sử dụng cho một mục đích cụ thể chứ không sử dụng làm csdl chính. Như khi crawl người ta hay quăng vào mongodb vì tốc độ truy suất csdl cao và không yêu cầu ràng buộc dữ liệu nhiều.

nonStop viết 20:03 ngày 30/09/2018

Bạn có thể giải thích qua cho mình về Transactionscale up theo chiều ngang được không ? thanks bạn

Itachi Citus viết 20:08 ngày 30/09/2018

stackoverflow.com
satish

What does scale horizontally and scale vertically mean?

database, performance, scalability
asked by satish on 07:20AM - 23 Mar 11

Cơ bản scale theo chiều ngang là thêm nhiều server, scale theo chiều dọc là tăng cấu hình của server hiện tại. Mục đích là tăng tốc độ xử lý cho server, tăng dung lượng lưu trữ.

http://www.sqlviet.com/blog/su-dung-transaction-trong-sql-server
Transaction là một giao tác. Một giao tác là một tập các hành động được thực hiện theo một trình tự xác định. Một giao tác chỉ thành công và có ý nghĩa khi tất cả các hành động đều thành công. Transaction nó có mấy tính chất ACID, bạn có thể google tìm hiểu thêm. Transaction giúp bảo vệ toàn vẹn dữ liệu và các hệ csdl quan hệ như MySQL có cơ chế xử lý cho transaction.

nonStop viết 19:59 ngày 30/09/2018

Transaction là một giao tác. Một giao tác là một tập các hành động được thực hiện theo một trình tự xác định. Một giao tác chỉ thành công và có ý nghĩa khi tất cả các hành động đều thành công. Transaction nó có mấy tính chất ACID, bạn có thể google tìm hiểu thêm. Tracsaction giúp bảo vệ toàn vẹn dữ liệu và các hệ csdl quan hệ như MySQL có cơ chế xử lý cho transaction.

tuyệt vời ,cảm ơn bạn . Nhưng mình thấy như trong ứng dụng Node.Js của mình , thì tính ràng buộc nằm bên trong các model của Node.Js , hơn nữa Node.Js sử dụng Waterline query nên nó giúp hoàn thiện MongoDB .

Itachi Citus viết 20:03 ngày 30/09/2018

Uh, đó là điểm yếu của MongoDB đó bạn. Thường những vấn đề này nằm ở data tier, hệ quản trị csdl phải xử lý nhưng cuối cùng nó lại bị đẩy cho tầng ứng dụng, chưa kể phép join bạn phải tự tổ chức lại dữ liệu để làm điều này và không đảm bảo tính đúng đắn của csdl. Nó không chỉ gây phức tạp mà bản thân csdl quan hệ nó có cơ chế để tối ưu các câu truy vấn cùng nhau.

Phạm Hoàng Huy viết 20:01 ngày 30/09/2018

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Bài liên quan
0