Gần đây, NoQuery đã trở nên phổ biến rộng rãi.
Những lợi thế của NoQuery so với RDBMS truyền thống là gì?
Gần đây, NoQuery đã trở nên phổ biến rộng rãi.
Những lợi thế của NoQuery so với RDBMS truyền thống là gì?
Câu trả lời:
Không phải tất cả dữ liệu là quan hệ. Đối với những tình huống đó, NoQuery có thể hữu ích.
Như đã nói, NoQuery là viết tắt của "Không chỉ SQL". Nó không có ý định gõ SQL hoặc thay thế nó.
SQL có một số lợi thế rất lớn:
Những người đã không biến mất.
Đó là một sai lầm khi nghĩ về điều này như là một hoặc / hoặc đối số. NoQuery là một giải pháp thay thế mà mọi người cần xem xét khi phù hợp, đó là tất cả.
Tài liệu có thể được lưu trữ trong cơ sở dữ liệu không liên quan, như CouchDB.
Có lẽ đọc điều này sẽ giúp.
SELECT blob FROM images WHERE blob CONTAINS('red car')
. Vì vậy, trong khi bạn có thể lưu trữ dữ liệu thô trong cơ sở dữ liệu, bạn không thể tìm kiếm nó mà không đính kèm siêu dữ liệu. Các mô-đun tìm kiếm toàn văn bản trong các hệ thống RDBMS thu hẹp một số khoảng cách bán cấu trúc.
Lịch sử dường như như thế này:
Google cần một lớp lưu trữ cho chỉ mục tìm kiếm đảo ngược của họ. Họ cho rằng một RDBMS truyền thống sẽ không cắt giảm. Vì vậy, họ triển khai một kho lưu trữ dữ liệu NoQuery, BigTable trên đầu hệ thống tệp GFS của họ. Phần chính là hàng ngàn máy móc phần cứng hàng hóa giá rẻ cung cấp tốc độ và sự dư thừa.
Mọi người khác nhận ra những gì Google vừa làm.
Định lý nhà sản xuất bia được chứng minh. Tất cả các hệ thống sử dụng RDBMS là các hệ thống CA. Mọi người cũng bắt đầu chơi với các hệ thống CP và AP. Các cửa hàng K / V đơn giản hơn rất nhiều, vì vậy chúng là phương tiện chính cho nghiên cứu.
Các hệ thống phần mềm dưới dạng dịch vụ nói chung không cung cấp một cửa hàng giống như SQL. Do đó, mọi người có hứng thú hơn với các cửa hàng loại NoQuery.
Tôi nghĩ rằng phần lớn việc cất cánh có thể liên quan đến lịch sử này. Mở rộng quy mô Google đã lấy một số ý tưởng mới tại Google và mọi người khác làm theo vì đây là giải pháp duy nhất họ biết cho vấn đề mở rộng quy mô ngay bây giờ. Do đó, bạn sẵn sàng làm lại mọi thứ xung quanh ý tưởng cơ sở dữ liệu phân tán của Google vì đó là cách duy nhất để mở rộng ra ngoài một kích thước nhất định.
C - Tính nhất quán
A - Tính khả dụng
P - Dung sai phân vùng
K / V - Khóa / Giá trị
NoQuery tốt hơn RDBMS vì những lý do / tính đúng đắn sau đây của NoQuery
BIÊN TẬP:
Để trả lời "tại sao RDBMS không thể mở rộng quy mô", vui lòng xem qua RDBMS Overhead pdf được viết bởi Stavros Harizopoulos, Daniel J. Abadi, Samuel Madden và Michael Stonebraker
RDBMS có những thách thức trong việc xử lý khối lượng dữ liệu khổng lồ của các byte Terabyte & Peta . Ngay cả khi bạn có Mảng dữ liệu độc lập / không tốn kém (RAID) và dữ liệu bị xáo trộn, nó cũng không mở rộng tốt cho khối lượng dữ liệu khổng lồ. Bạn yêu cầu phần cứng rất đắt tiền.
Ghi nhật ký : Lắp ráp các bản ghi nhật ký và theo dõi tất cả các thay đổi trong cấu trúc cơ sở dữ liệu làm chậm hiệu suất. Ghi nhật ký có thể không cần thiết nếu khả năng phục hồi không phải là một yêu cầu hoặc nếu khả năng phục hồi được cung cấp thông qua các phương tiện khác (ví dụ: các trang web khác trên mạng).
Khóa : Khóa hai pha truyền thống đặt ra một chi phí khá lớn vì tất cả các truy cập vào cấu trúc cơ sở dữ liệu được điều chỉnh bởi một thực thể riêng biệt, Trình quản lý khóa.
Chốt : Trong cơ sở dữ liệu đa luồng, nhiều cấu trúc dữ liệu phải được chốt trước khi chúng có thể được truy cập. Loại bỏ tính năng này và đi đến một cách tiếp cận đơn luồng có tác động hiệu suất đáng chú ý.
Quản lý bộ đệm : Một hệ thống cơ sở dữ liệu bộ nhớ chính không cần truy cập các trang thông qua nhóm bộ đệm, loại bỏ mức độ gián tiếp trên mỗi lần truy cập bản ghi.
Điều này không có nghĩa là chúng ta phải sử dụng NoQuery qua SQL.
Tuy nhiên, RDBMS tốt hơn NoQuery vì những lý do / thuộc tính sau của RDBMS
Chúng tôi phải sử dụng RDBMS (SQL) và NoQuery (Không chỉ SQL) tùy thuộc vào trường hợp & yêu cầu nghiệp vụ
NOSQL không có lợi thế đặc biệt so với mô hình cơ sở dữ liệu quan hệ. NOSQL giải quyết các hạn chế nhất định của các DBMS SQL hiện tại nhưng nó không ngụ ý bất kỳ khả năng mới nào về cơ bản so với các mô hình dữ liệu trước đó.
NOSQL có nghĩa là chỉ không có SQL (hoặc "không chỉ SQL") mà điều đó không có nghĩa giống như không có quan hệ . Về cơ bản, một cơ sở dữ liệu quan hệ sẽ tạo ra một giải pháp NOSQL rất tốt - chỉ là không có bộ sản phẩm NOSQL hiện tại nào sử dụng mô hình quan hệ.
RDBMS tập trung nhiều hơn vào mối quan hệ và NoQuery tập trung nhiều hơn vào lưu trữ.
Bạn có thể xem xét sử dụng NoQuery khi RDBMS của bạn gặp phải tắc nghẽn. NoQuery làm cho RDBMS linh hoạt hơn.
Ưu điểm lớn nhất của NoQuery so với RDBMS là Khả năng mở rộng .
Cơ sở dữ liệu NoQuery có thể dễ dàng mở rộng ra nhiều nút, nhưng đối với RDBMS thì rất khó.
Khả năng mở rộng không chỉ cung cấp cho bạn nhiều không gian lưu trữ hơn mà hiệu năng còn cao hơn nhiều vì nhiều máy chủ hoạt động cùng một lúc.
Chỉ cần thêm vào tất cả các thông tin được cung cấp ở trên
Ưu điểm của NoSql:
1) NoQuery là tốt nếu bạn muốn sẵn sàng sản xuất nhanh do sự hỗ trợ của nó cho kiến trúc hướng đối tượng và không có lược đồ.
2) Cuối cùng, db của NoSql phù hợp với ngôn ngữ đơn giản có nghĩa là họ sẽ không cung cấp bất kỳ khóa nào trên dữ liệu (như tài liệu) như trong trường hợp RDBMS và ý nghĩa là ảnh chụp nhanh dữ liệu mới nhất luôn có sẵn và do đó làm tăng độ trễ của ứng dụng của bạn .
3) Nó sử dụng chiến lược MVCC (Điều khiển đồng thời nhiều chế độ xem) để duy trì và tạo ảnh chụp nhanh dữ liệu (tài liệu).
4) Nếu bạn muốn có dữ liệu được lập chỉ mục, bạn có thể tạo chế độ xem sẽ tự động lập chỉ mục dữ liệu theo định nghĩa chế độ xem bạn cung cấp.
Nhược điểm của NoSql:
1) Nó chắc chắn không phù hợp với các ứng dụng giao dịch lớn vì cuối cùng nó phù hợp và không hỗ trợ các thuộc tính ACID.
2) Ngoài ra, nó tạo ra nhiều ảnh chụp nhanh (sửa đổi) dữ liệu của bạn (tài liệu) vì nó sử dụng phương pháp MVCC để kiểm soát đồng thời, do đó, không gian bị tiêu thụ nhanh hơn trước đó khiến cho việc nén và do đó thường xuyên hơn và nó sẽ làm chậm lại ứng dụng đáp ứng khi dữ liệu và giao dịch trong ứng dụng của bạn phát triển. Để truy cập rằng bạn có thể chia tỷ lệ theo chiều ngang của các nút nhưng sau đó sẽ có chi phí cao hơn khi so sánh cơ sở dữ liệu sql.
Từ mongodb.com :
Cơ sở dữ liệu NoQuery khác với công nghệ quan hệ cũ hơn trong bốn lĩnh vực chính:
Mô hình dữ liệu : Cơ sở dữ liệu NoQuery cho phép bạn xây dựng một ứng dụng mà không cần phải xác định lược đồ trước tiên không giống như cơ sở dữ liệu quan hệ giúp bạn xác định lược đồ của mình trước khi bạn có thể thêm bất kỳ dữ liệu nào vào hệ thống. Không có lược đồ được xác định trước làm cho cơ sở dữ liệu NoQuery dễ dàng cập nhật hơn khi dữ liệu và yêu cầu của bạn thay đổi.
Cấu trúc dữ liệu : Cơ sở dữ liệu quan hệ được xây dựng trong thời đại mà dữ liệu được cấu trúc khá rõ ràng và được xác định rõ ràng bởi các mối quan hệ của chúng. Cơ sở dữ liệu NoQuery được thiết kế để xử lý dữ liệu phi cấu trúc (ví dụ: văn bản, bài đăng trên phương tiện truyền thông xã hội, video, email) tạo nên phần lớn dữ liệu tồn tại ngày nay.
Chia tỷ lệ : Việc mở rộng cơ sở dữ liệu NoQuery rẻ hơn nhiều so với cơ sở dữ liệu quan hệ vì bạn có thể thêm dung lượng bằng cách nhân rộng ra các máy chủ hàng hóa giá rẻ. Mặt khác, cơ sở dữ liệu quan hệ yêu cầu một máy chủ duy nhất để lưu trữ toàn bộ cơ sở dữ liệu của bạn. Để mở rộng quy mô, bạn cần mua một máy chủ lớn hơn, đắt tiền hơn.
Mô hình phát triển : Cơ sở dữ liệu NoQuery là nguồn mở trong khi cơ sở dữ liệu quan hệ thường là nguồn đóng với phí cấp phép được sử dụng cho phần mềm của họ. Với NoQuery, bạn có thể bắt đầu một dự án mà không cần bất kỳ khoản đầu tư lớn nào vào phí phần mềm trả trước.