2010-03-14 27 views
8

Cơ sở dữ liệu không phải sql nhanh nhất và ổn định nhất để lưu trữ dữ liệu lớn và xử lý hàng ngàn yêu cầu trong ngày (nó dành cho dịch vụ trao đổi lưu lượng truy cập) là gì? Tôi đã tìm thấy Kdb + và Berkeley DB. Họ có tốt không? Có các lựa chọn khác không?Cơ sở dữ liệu không phải sql nhanh nhất và ổn định?

Chi tiết ...

quá trình máy chủ

Mỗi ngày> 100K thăm. Đối với mỗi lần truy cập tôi cần phải đọc số liệu thống kê tương ứng từ DB, viết nhật ký DB và cập nhật số liệu thống kê trong DB, hay còn gọi là 3 hoạt động với DB mỗi lượt truy cập. Giao thông liên tục tăng. Vì vậy, động cơ DB nên được nhanh chóng. Từ một phía DB sẽ được quản lý bởi ma quỷ được viết trên C, Erlang hoặc bất kỳ ngôn ngữ cấp thấp khác. Từ một phía DB khác sẽ được quản lý bởi các kịch bản PHP.

+0

"Chúng có tốt không?"Berkley DB đã tồn tại hàng chục năm rồi. Bạn còn cần phải biết thêm điều gì nữa?" Có những lựa chọn khác không? "Nhưng, vì bạn không cung cấp nhiều thông tin cơ bản hoặc hướng dẫn, thật khó để đưa ra một đề xuất cụ thể. –

+0

Khi bạn Tham khảo cơ sở dữ liệu không phải sql Bạn có quan tâm đến một công cụ SQL "dựa trên dịch vụ" hay một DLL thả xuống như những người khác được đề cập đến về SQLite (và cả Sybase Advantage LOCAL Server). Bạn mô tả dữ liệu "BIG", và đó là tất cả tương đối dựa trên bình thường hóa dữ liệu quá – DRapp

+1

TROUSANDS yêu cầu mỗi ngày? Nghiêm túc, mọi người sử dụng cơ sở dữ liệu SQL để phục vụ hàng ngàn yêu cầu mỗi SECOND, và với các truy vấn phức tạp ở đó. – intgr

Trả lời

0

Berkely DB được thử và thử nghiệm và làm cứng và là trung tâm của nhiều hệ thống khối lượng giao dịch lớn. Một ví dụ là hạ tầng mạng di động không dây sử dụng các cửa hàng LDAP lớn (ví dụ OpenWave) để xử lý hơn 2 tỷ giao dịch mỗi ngày. Những hệ thống này cũng thường có một cái gì đó giống như Oracle trong hỗn hợp quá cho điểm trong thời gian phục hồi, nhưng họ sử dụng Berkeley DB như cache nhân rộng.

Ngoài ra, BDB không giới hạn các cặp giá trị khóa theo nghĩa đơn giản của các giá trị vô hướng. Bạn có thể lưu trữ bất cứ điều gì bạn muốn trong giá trị, bao gồm cả cấu trúc/bản ghi tùy ý.

4

Bản thân hệ thống tệp nhanh hơn và ổn định hơn hầu hết mọi thứ khác. Nó lưu trữ dữ liệu lớn liền mạch và hiệu quả. API rất đơn giản.

Bạn có thể lưu trữ và truy xuất từ ​​hệ thống tệp rất, rất hiệu quả.

Vì câu hỏi của bạn hơi nhỏ về "yêu cầu", thật khó để nói nhiều hơn nữa.

0

Có gì sai với SqlLite? Vì bạn đã khai báo rõ ràng không phải sql, Berkeley DB dựa trên các cặp khóa/giá trị mà có thể không đủ cho nhu cầu của bạn nếu bạn muốn mở rộng bộ dữ liệu, thậm chí nhiều hơn như vậy, làm cách nào để làm cho tập dữ liệu đó liên kết với nhau bằng khóa/Các cặp giá trị ....

Mặt khác, Kdb +, xem FAQ trên trang web của họ là một cơ sở dữ liệu quan hệ có thể xử lý SQL thông qua ngôn ngữ lập trình của họ Q ... lưu ý, nếu cần di chuyển xuất hiện, có thể có tiềm năng cản trở, chẳng hạn như phương ngữ không tương thích hoặc truy vấn sử dụng thông tin chi tiết của nhà cung cấp, do đó có khả năng bị khóa vào cơ sở dữ liệu đó và không thể di chuyển ... tất cả điều cần lưu ý sau này ...

Bạn cần phải cẩn thận những gì bạn quyết định ở đây và tìm kiếm t nó từ một quan điểm dài hạn, nâng cấp trong tương lai, di chuyển đến cơ sở dữ liệu khác, làm thế nào nó sẽ dễ dàng lên đến quy mô, vv

+1

Bạn sẽ làm cho các tập dữ liệu liên quan đến nhau bằng cách lưu trữ nhiều hơn một vô hướng đơn giản trong trường giá trị. Berkely không quan tâm đến những gì bạn lưu trữ, nó xử lý nó như một blob byte. – codenheim

0

Một mục rõ ràng trong thể loại này là Intersystems Caché. (Vâng, rõ ràng với tôi ...) Hãy nhận biết, tuy nhiên, nó không phải là rẻ. (Nhưng tôi cũng không nghĩ là Kdb +.)

0

Còn Redis thì sao?

http://code.google.com/p/redis/

Chưa thử nó chưa đã đọc về nó và nó dường như là một nhanh chóng và đủ ổn định để lưu trữ dữ liệu. Nó cũng cung cấp cho bạn một giải pháp chống đơn điểm phong nha, theo như tôi hiểu.

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