September 24, 2013

MongoDB - Something to note

MongoDB.org
Mấy ngày nay ngồi tìm hiểu về MongoDB, một Document Database mà theo mình là rất hấp dẫn. Nghiên cứu nhiều tài liệu, từ trang chủ, slideshare, stackoverflow ... và vẫn đang tiếp tục tìm hiểu. Mình viết lại những gì mình đã đọc tại đây để có gì còn coi lại và vận dụng. Cũng như chia sẻ cho mọi người những điều thú vị mà mình đọc qua, hy vọng các bạn sẽ thấy được điều hữu ích gì đó dành cho mọi người.
Loạt bài này sẽ nhiều phần, vì như mình nói, mình đang nghiên cứu nghiền ngẫm, thấy hay gì là note lại chứ không logic hay chuẩn bị gì cả.

1 - Map / Reduce

Cái này rất hay, nhưng mình không đủ khả năng giải thích, mọi người xem qua video sau để hiểu về Map - Reduce.


2 - Embed Document vs Reference Document

Cái này cũng không giải thích dài dòng, mọi người xem hình bên dưới sẽ hiểu luôn ^^

3 - Convert from SQL to Mongo

Nhìn hình là hiểu, không hiểu thì xem link đính kèm :)
Nguồn: http://rickosborne.org/blog/2010/02/infographic-migrating-from-sql-to-mapreduce-with-mongodb/

4 - Khi nào không nên dùng MongoDB

  • Mongo không hỗ trợ transaction, nên nếu cái gì liên can đến transaction thì nên lựa chọn loại Database khác
  • Join nhiều loại kiểu dữ liệu khác nhau

5 - Sharding

  • only shard the big collections
  • pre-split if bulk loading
  • pick shard key with care, they aren't easily changeable
  • be cognizant of monotonically increasing shard keys
  • adding a shard is easy but takes time
  • use logical server names for config servers
  • don't directly talk to anything except mongos except for dba work
  • keep non-mongos processes off of 27017 to avoid mistakes

2 comments:

  1. Theo mình biết MongoDB là NoSQL thì đương nhiên nó ko có transaction là điều dễ hiểu. Nếu bạn viết thế kia nhiều người đọc sẽ ko hiểu được bản chất, nghĩ rằng NoSQL là relational database.

    ReplyDelete
    Replies
    1. Chào bạn,
      Tiêu đề bài này mình chỉ ghi là "Something to note" nên không có ý diễn giải hay bất kỳ điều gì ở đây cả. Mình cũng có ghi bên trên là mình đang tìm hiểu và note lại để sau này dễ đọc hơn, vì mình đọc từ nhiều nguồn, nếu không note lại thì không nhớ được, tới khi cần lại tốn công reserach.
      Nên bài viết không nhằm vào việc giải thích cho các đối tượng không biết gì về NoSQL để có sự nhầm lẫn như bạn nói bên trên. Và mình cũng không giải thích thế nào là NoSQL ở đây.
      Rất cảm ơn bạn đã để lại nhận xét, và bạn có thể vui lòng để lại tên thay vì "Nặc danh" như vậy để kết giao bằng hữu dễ hơn :)
      Thân chào

      Delete