2010-10-06 20 views
7

Trang web của chúng tôi cần hệ thống loại quản lý nội dung. Ví dụ: quản trị viên muốn tạo các trang khuyến mãi khi đang di chuyển. Họ sẽ cung cấp một số văn bản và hình ảnh cho trang và url mà trang cần phải được bật. Chúng tôi cần một kho dữ liệu cho việc này. Tiêu chí cho kho dữ liệu đơn giản và được xác định bên dưới. Tôi không quen thuộc với CouchDB hoặc MongoDB, nhưng nghĩ rằng chúng có thể phù hợp hơn với MySQL, nhưng tôi đang tìm kiếm một người có nhiều kiến ​​thức về MongoDB và CouchDB để thu hút.Điều nào phù hợp nhất với nhu cầu của tôi: MongoDB, CouchDB hoặc MySQL. Tiêu chí được xác định trong câu hỏi

Trên thang tỷ lệ từ 1 đến 10 làm thế nào bạn sẽ đánh giá MongoDB, CouchDB, và MySQL sau: client

  • Java
  • nhấp chuột theo dõi web
  • CMS như hệ thống
  • cửa hàng tải lên file
  • Dễ dàng cài đặt failover
  • Hỗ trợ
  • Documentation

Bạn sẽ chọn trong những trường hợp?

+0

Để lưu trữ tệp, hãy xem xét sử dụng độ nhớt (http://www.gluster.org) hoặc ceph (www.ceph.com) – JoG

Trả lời

6

Mỗi loại phù hợp với các lần sử dụng khác nhau. Nhưng trong các trang web lưu lượng truy cập thấp mysql/postgresql là tốt hơn.

Java khách hàng: tất cả đều có khách hàng

nhấp chuột Theo dõi web: Mongo và cassandra là phù hợp hơn cho ghi tình hình cao này

Lưu trữ các file tải lên: Mongo với gridfs là phù hợp. cassandra có thể lưu trữ lên đến 2gb bởi mỗi cột tách thành 1 mb. mysql không phù hợp. lưu trữ chỉ có vị trí tập tin và lưu trữ các tập tin trong hệ thống tập tin được preffered cho cassandra và mysql.

Dễ dàng cài đặt failover: cassandra là tốt nhất, Mongo thứ hai

Hỗ trợ: tất cả đều có sự hỗ trợ tốt, mysql đã cộng đồng lớn nhất, Mongo là thứ hai

Tài liệu: 1 mysql, 2nd Mongo

Tôi thích MongoDB để phân tích (nhấp chuột trên web, quầy, nhật ký) (bạn cần hệ thống 64 bit) và mysql hoặc postgresql cho dữ liệu chính. trên các công ty sử dụng trang mongo trong trang web mongo, bạn có thể thấy hầu hết trong số họ đang sử dụng mongo để phân tích. mongo có thể phù hợp với dữ liệu chính sau phiên bản 1.8. vấn đề với cassandra là khả năng truy vấn kém (không thích hợp cho một cm). và vấn đề với mysql không dễ dàng mở rộng được & HA như cassandra & mongo và mysql cũng chậm hơn, đặc biệt là khi viết. Tôi không khuyên bạn nên couchdb, đó là chậm nhất.

của tôi tốt nhất

Serdar Irmak

0

Tôi nghĩ có rất nhiều bài đăng khác liên quan đến chủ đề này. Tuy nhiên, tôi sẽ kêu vang kể từ khi tôi đã chuyển mysql và lên mongodb. Nó nhanh, rất nhanh nhưng điều đó không có nghĩa là nó hoàn hảo. Lời khuyên của tôi, sử dụng những gì bạn cảm thấy thoải mái. Nếu bạn mất nhiều thời gian hơn để mã refactor để làm cho nó phù hợp với mongo hoặc đi văng, sau đó dính vào mysql nếu đó là những gì bạn đang quen thuộc với. Nếu đây là một cái gì đó bạn muốn nhận như là một skillset thì tất cả có nghĩa là học mongodb hoặc couchdb.

Đối với tôi, tôi đã đi với mongodb vì một vài lý do, lưu trữ tệp qua gridfs và định vị địa lý. Tôi có thể đã sử dụng mysql nhưng tôi muốn xem những gì tất cả các fuss là về. Tôi phải nói, tôi rất ấn tượng và tôi vẫn còn nhiều cách để đi trước khi tôi có thể nói rằng tôi cảm thấy thoải mái với mongo.

Với những gì bạn đã liệt kê, tôi có thể cho bạn biết rằng mongo sẽ phù hợp với hầu hết nhu cầu của bạn.

5

Dưới đây là một số câu trả lời nhanh dựa trên kinh nghiệm của tôi với Mongo.

Java client

Không chắc, nhưng nó vẫn tồn tại và nó cũng được hỗ trợ. Lots of docs, thậm chí một số POJO wrappers để làm cho nó dễ dàng.

Theo dõi web nhấp chuột

8 hoặc 9. Nó thực sự dễ dàng để làm cả hai chèn và cập nhật nhờ "lửa và quên". MongoDB có các công cụ tích hợp để ánh xạ-giảm dữ liệu và các công cụ dễ dàng để xuất dữ liệu sang SQL để phân tích (nếu Mongo không đủ tốt).

CMS như hệ thống

8 hoặc 9. Thật dễ dàng để lưu trữ toàn bộ nội dung trang web. Thật dễ dàng để "móc thêm" các cột bổ sung. Đây thực sự là "bánh mì và bơ" của Mongo.

cửa hàng tải lên file

Có một đường cong học tập ở đây, nhưng Mongo có một hệ thống GridFS thiết kế đặc biệt cho cả tiết kiệm và phục vụ dữ liệu nhị phân.

Dễ dàng cài đặt failover

Bắt đầu máy chủ chính của bạn: Bắt đầu nô lệ của bạn: ./mongo --bindip 1.2.3.5 --dbpath /my/data/files --slave --source 1.2.3.4

Hỗ trợ

10gen có một danh sách gửi thư: http://groups.google.com/group/mongodb-user. Họ cũng đã hỗ trợ trả tiền.

Thời gian phản hồi của họ thường nằm ở đâu đó giữa tuyệt vời và tuyệt vời.

Documentation

trung bình. Đó là tất cả ở đó, nhưng nó vẫn còn một chút dis-tổ chức. Chock nó lên đến rất nhiều phát triển mới trong cuối cùng.

0

tôi không thấy bất cứ điều gì ở đây như "phải xử lý hàng triệu req/s" đó sẽ chỉ ra cán của riêng bạn sẽ tốt hơn so với sử dụng một cái gì đó ra khỏi kệ như Drupal .

+0

Trang web của tôi hiện đang giao tiếp với chương trình phụ trợ qua giao diện SOAP. Phần CMS của trang web sẽ cần một số thông tin này. Nó cũng cần để có thể chia sẻ dữ liệu phiên với phần chính của trang web. Có một giải pháp Java cho điều này với một giấy phép công bằng? – Bradford

2

Việc đi của tôi trên CouchDB:

Java Client: Sử dụng ektorp thật dễ dàng và hoàn chỉnh. Dù sao tất cả các API chỉ là Json qua HTTP vì vậy nó là tất cả dễ dàng.

Theo dõi lần nhấp trên web: Có thể redis là công cụ tốt hơn cho việc này. CouchDB không phải là lựa chọn tốt hơn ở đây.

CMS giống như hệ thống: Thật tuyệt vời khi bạn có thể dễ dàng kết hợp các mẫu, biểu mẫu động, dữ liệu và v.v. và đối chiếu chúng bằng cách sử dụng chế độ xem.

Lưu trữ các tệp đã tải lên: Bất kỳ tài liệu nào trong couchdb đều có thể có các tệp đính kèm có trọng lượng, vì vậy nó phù hợp tự nhiên.

Dễ dàng thiết lập chuyển đổi dự phòng: Sao chép chính/chủ đảm bảo bạn luôn đọc để đọc, cơ sở dữ liệu không bao giờ bị hỏng do đó trong trường hợp thất bại, nó chỉ là vấn đề bắt đầu đi lại và nó sẽ tiếp tục.) và nhân rộng sẽ nắm bắt những thay đổi.

Hỗ trợ: Có danh sách gửi thư và hỗ trợ trả phí.

Tài liệu: sử dụng sách mở http://guide.couchdb.org và wiki.

Các vấn đề liên quan