Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Khi nào sử dụng MongoDB hoặc các hệ thống cơ sở dữ liệu hướng tài liệu khác?

Trong NoSQL:Giá mà nó dễ dàng như vậy , tác giả viết về MongoDB:

MongoDB không phải là nơi lưu trữ khóa / giá trị, nó còn hơn thế nữa. Nó chắc chắn không phải là một RDBMS. Tôi chưa sử dụng MongoDB trong sản xuất, nhưng tôi đã sử dụng nó một chút để xây dựng một ứng dụng thử nghiệm và nó là một bộ công cụ rất thú vị. Nó có vẻ rất hiệu quả và đã, hoặc sẽ sớm có khả năng chịu lỗi và tự động làm sắc nét (hay còn gọi là nó sẽ mở rộng quy mô). Tôi nghĩ Mongo có thể là thứ gần nhất với sự thay thế RDBMS mà tôi đã thấy cho đến nay. Nó sẽ không hoạt động với tất cả các tập dữ liệu và mẫu truy cập, nhưng nó được xây dựng cho những thứ CRUD điển hình của bạn. Lưu trữ những gì về cơ bản là một hàm băm lớn và có thể chọn trên bất kỳ khóa nào trong số đó, là điều mà hầu hết mọi người sử dụng cơ sở dữ liệu quan hệ. Nếu DB của bạn là 3NF và bạn không thực hiện bất kỳ phép nối nào (bạn chỉ đang chọn một loạt các bảng và đặt tất cả các đối tượng lại với nhau, AKA là điều mà hầu hết mọi người làm trong một ứng dụng web), MongoDB có thể sẽ khiến bạn.

Sau đó, trong phần kết luận:

Điều thực sự cần chỉ ra là nếu bạn bị cản trở trong việc tạo ra thứ gì đó siêu tuyệt vời vì bạn không thể chọn cơ sở dữ liệu, thì bạn đang làm sai. Nếu bạn biết mysql, chỉ cần sử dụng nó. Tối ưu hóa khi bạn thực sự cần. Sử dụng nó như một cửa hàng k / v, sử dụng nó như một rdbms, nhưng vì chúa, hãy xây dựng ứng dụng sát thủ của bạn! Không điều gì trong số này sẽ quan trọng đối với hầu hết các ứng dụng. Facebook vẫn sử dụng MySQL, rất nhiều. Wikipedia sử dụng MySQL, rất nhiều. FriendFeed sử dụng MySQL, rất nhiều. NoSQL là một công cụ tuyệt vời, nhưng chắc chắn nó sẽ không phải là lợi thế cạnh tranh của bạn, nó sẽ không làm cho ứng dụng của bạn trở nên hot và hơn hết, người dùng của bạn sẽ không quan tâm đến bất kỳ điều gì trong số này.

Tôi sẽ xây dựng ứng dụng tiếp theo của mình trên nền tảng gì? Có lẽ là Postgres. Tôi sẽ sử dụng NoSQL? Có lẽ. Tôi cũng có thể sử dụng Hadoop và Hive. Tôi có thể giữ mọi thứ trong các tệp phẳng. Có lẽ tôi sẽ bắt đầu hack Maglev. Tôi sẽ sử dụng bất cứ thứ gì tốt nhất cho công việc. Nếu tôi cần báo cáo, tôi sẽ không sử dụng bất kỳ NoSQL nào. Nếu tôi cần bộ nhớ đệm, có lẽ tôi sẽ sử dụng Tokyo Tyrant. Nếu tôi cần ACIDity, tôi sẽ không sử dụng NoSQL. Nếu tôi cần rất nhiều quầy, tôi sẽ sử dụng Redis. Nếu tôi cần giao dịch, tôi sẽ sử dụng Postgres. Nếu tôi có rất nhiều loại tài liệu, tôi có thể sẽ sử dụng Mongo. Nếu tôi cần viết 1 tỷ đồ vật mỗi ngày, có lẽ tôi sẽ sử dụng Voldemort. Nếu tôi cần tìm kiếm toàn văn, có lẽ tôi sẽ sử dụng Solr. Nếu tôi cần tìm kiếm toàn bộ văn bản về dữ liệu biến động, có lẽ tôi sẽ sử dụng Sphinx.

Tôi thích bài viết này, tôi thấy nó rất giàu thông tin, nó đưa ra một cái nhìn tổng quan tốt về cảnh quan NoSQL và sự cường điệu. Tuy nhiên, và đó là phần quan trọng nhất, nó thực sự hữu ích để tự đặt cho mình những câu hỏi phù hợp khi lựa chọn giữa RDBMS và NoSQL. IMHO đáng để đọc.

Liên kết thay thế tới bài viết



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python 3.4.0 với cơ sở dữ liệu MySQL

  2. Làm cách nào để tôi có thể sử dụng các câu lệnh soạn sẵn trong CodeIgniter

  3. Làm cách nào để đặt thời gian thực thi tối đa cho một truy vấn mysql?

  4. MySQL - Làm cách nào để bỏ chia cột thành hàng?

  5. Cách so sánh hai bảng trong MySQL