2010-04-09 42 views
10

Gần đây, có rất nhiều cuộc trò chuyện về NoSQL.Tại sao nên sử dụng NoSQL trên Chế độ xem Vật hoá?

Lý do số 1 tại sao tôi nghe mọi người sử dụng NoSQL là vì họ bắt đầu khử chuẩn DBMS dữ liệu của mình rất nhiều, để tăng hiệu suất, chúng kết thúc chỉ với một bảng với tất cả dữ liệu trong bảng đó . Tuy nhiên,

Tuy nhiên, với Chế độ xem được materialized, bạn có thể giữ cho dữ liệu của mình được chuẩn hóa, nhưng nó được lưu trữ dưới dạng chế độ xem bảng duy nhất với cùng lý do tại sao bạn sử dụng NoSQL.

Như vậy, tại sao một người nào đó sử dụng NoSQL trên Chế độ xem được materialized?

+0

Tôi nghĩ lý do thực sự đằng sau NoSql là thực tế là SQL không mở rộng đến> petabyte dữ liệu. Việc thiếu chuẩn hóa, và các tính năng sql tiên tiến nói chung (chẳng hạn như (coff) đảm bảo tính nhất quán), là kết quả của, và nhiều hơn nữa một tác dụng phụ của, kiến ​​trúc phân tán, không phải là một mục tiêu thiết kế thực tế. –

Trả lời

6

Một lý do là lượt xem được thực hiện sẽ hoạt động kém trong tình huống OLTP khi có số lượng INSERT lớn so với CHỌN.

Dữ liệu hàng giờ được chèn vào chỉ mục chế độ xem được materialized phải được cập nhật, không chỉ làm chậm chèn mà còn chọn. Lý do chính để sử dụng NoSQL là hiệu suất. Bởi về cơ bản là một cửa hàng khóa băm, bạn nhận được đọc/viết cực nhanh, với chi phí ít kiểm soát hơn các ràng buộc, mà thường phải được thực hiện ở lớp ứng dụng.

Vì vậy, trong khi chế độ xem vật chất có thể giúp đọc, chúng không làm gì để tăng tốc độ ghi.

+0

Điều đó không đúng. Oracle tuyên bố rằng Materialized Views tăng đáng kể hiệu suất. http://www.oracle.com/technology/products/oracle9i/daily/jul05.html – JustinT

+2

@JustinT: Tất nhiên, tiếp thị của họ sẽ nói điều đó. Thực tế là trong một số trường hợp (tình huống đọc nặng) chúng rất tuyệt. Trong những tình huống viết nặng, chúng không tuyệt vời, đó là điểm tôi đã làm bằng cách chỉ định OLTP, ở trên. – RedFilter

+0

Tăng đáng kể hiệu suất so với những gì? "Oracle9i cải thiện đáng kể chức năng của các quan điểm vật hoá" .. so với tốc độ trước đó của chúng. Không so sánh với kiến ​​trúc kiểu NoSQL. – NebuSoft

3

NoSQL không phải là để có được hiệu suất tốt hơn trong cơ sở dữ liệu SQL của bạn. Đó là về việc xem xét các tùy chọn khác với lưu trữ SQL mặc định khi không có lý do cụ thể cho dữ liệu trong SQL.

Nếu bạn có cơ sở dữ liệu SQL được thiết lập với lược đồ được thiết kế tốt và yêu cầu mới duy nhất của bạn là hiệu suất được cải thiện, việc thêm chỉ mục và chế độ xem chắc chắn là phương pháp phù hợp.

Nếu bạn cần lưu đối tượng hồ sơ người dùng mà bạn biết sẽ chỉ cần truy cập bằng khóa của nó, SQL có thể không phải là tùy chọn tốt nhất - bạn không nhận được gì từ hệ thống với tất cả các chức năng truy vấn bạn đã giành được ' t sử dụng, nhưng có thể để lại ra khỏi lớp ORM trong khi cải thiện hiệu suất của các truy vấn bạn sẽ sử dụng là khá có giá trị.

+2

Dữ liệu không thể là 'trong SQL'. Ý bạn là 'trong quan hệ'? Có một sự khác biệt để rời khỏi ngôn ngữ SQL và khởi hành từ mô hình quan hệ, mặc dù 'NoSQL' kết hợp cả hai. Cũng lưu ý rằng các chỉ mục và khung nhìn sẽ giúp ích rất ít trong môi trường chèn/cập nhật nặng. – beldaz

0

Một lý do khác là bản chất động của NoSQL. Mỗi chế độ xem bạn tạo sẽ cần được tạo trước và "phỏng đoán" về cách ứng dụng có thể sử dụng nó.

Với NoSQL bạn có thể thay đổi khi thay đổi dữ liệu; tự động thay đổi dữ liệu của bạn cho phù hợp với ứng dụng.

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