NoSQL có nghĩa là Non-Relational (NoRel) – không ràng buộc – tuy nhiên,
người ta thường dịch là Not Only SQL. Nói một cách đơn giản nhất, NoSQL
là cơ sở dữ liệu mà không dùng mô hình dữ liệu quan hệ.
Các database như MS SQL Server, Oracle ... hiện đang tỏ ra khá chật vật
và ngốn performance với một loạt các relation hay constrain và có vẻ
không thích hợp với các ứng dụng kiểu cloud và realtime hiện nay như
Cassandra của Facebook hay Big Table của Google.
MongoDB là một NoSQL Database kiểu Document-based hoàn toàn open source
được viết trên C++ hỗ trợ các tính năng như : Fullindex, Fulltext
Search, Replication, Sharding hay có thể lưu trữ dạng file với kích
thước lớn tùy ý
-Một trong những thuận lợi tôi rất thích ở MongoDB là khả năng mở rộng
theo chiều ngang [horizontal scalable], nghĩa là việc thêm column vào
một table nào đó [chuyện này xảy ra như cơm bữa] là cực kỳ đơn giản.
-Tính năng Sharding tương tự tính năng cluster trong MS SQL Server giúp
cho việc quản lý và query các record trở nên dễ dàng hơn, ngoài ra nó
còn tăng khả năng ghi đọc lên database tránh khỏi các bottleneck lock do
việc chia ra nhiều instance thực hiện ghi đọc
-Đối với các bạn thành thạo Javascript thì MongoDB quả thật là tuyệt vời
với các câu query bằng javascript, có thể thoát khỏi sự ràng buộc của
các trigger hay procedure của sql
-Aggregation Framework mang lại cho lập trình viên một tập các hàm xử lí
toán học phục vụ phân tích thống kê dùng trong các hệ thống CMS
-Một tính năng độc đáo nữa có thể kể đến là khả năng query theo tọa độ
đề các hoặc tọa độ vệ tinh nếu các bạn thu thập được : query theo bán
kính, theo khoảng cách gần nhất
+ Khả năng ghi đọc của MongoDB có thể nói đã được cải thiện đáng kể so với các DB khác :
Với một Table gồm khoảng 10 field text chiều dài khoảng 100 characters,
MongoDB có thể insert 1 triệu bản ghi trong vòng hơn 10 phút và chỉ với
một instance. Nếu dùng nhiều instance thì tốc độ sẽ khủng khiếp hơn
nhiều
Dữ liệu trong MongoDB được lưu trữ dạng BSON nên chiếm rất ít đĩa cứng
và thuận thiện cho việc backup. Bạn có thể back up dạng bson hoặc dạng
một file javascript tùy ý và việc restore là hoàn toàn dễ dàng.
+ Như đã nói ở phần trước, MongoDB là một db phát triển theo chiều ngang
nên bạn có thể tùy ý thêm các trường mới vào table một cách dễ dàng với
loại dữ liệu tùy ý. Tôi chắc chắn là với MS SQLServer có rất nhiều bạn
đã gặp phải trường hợp cần đổi loại dữ liệu của một field nào đó mà
không đổi được do số lượng record quá lớn, đơn giản là đổi từ int sang
bigint cho đỡ tràn số.Với MongoDB thì việc này rất dễ dàng mà không phụ
thuộc vào số lượng record hiện có trong table hay loại dữ liệu của field
muốn sửa, ví dụ bạn có thể đổi từ int sang
double,long,string,datetime,mảng hay bất cứ thứ gì bạn nghĩ ra thậm chí
cả chính table chứa cái field đó (dữ liệu kiểu đệ quy, giống kiểu linked
list)
+ Một điểm khá hay đó là bạn có thể insert một lúc rất nhiều record vào
table(insert batch) mà các db hiện nay chưa hỗ trợ, việc này tiết kiếm
khá nhiều thời gian truyền dữ liệu và khởi tạo connection
+ Với một câu lệnh theo cú pháp thì MongoDB sẽ thêm mới một record vào
table nếu trong table chưa có hoặc update record nếu nó đã tồn tại
Không có nhận xét nào:
Đăng nhận xét