2011-01-14 8 views
33

Khi tôi đặt câu hỏi này, tôi thấy rằng phiên bản hiện tại của cơ sở dữ liệu H2 đã được phát hành vào ngày 07-01-2011 (rất gần đây). Đó là rất tốt & khỏe mạnh. Liệu tốc độ này có được giữ lại không? sự kiện nếu tốc độ phát hành mới chậm, liệu nó có được hỗ trợ bởi cộng đồng nguồn mở trong thời gian dài không? Vì lý do chi phí, tôi hiện đang xem xét sử dụng Postgresql cho một ứng dụng hiệu năng cao và cơ sở dữ liệu H2 dường như có tập hợp các tính năng (về cơ bản bất cứ điều gì tôi cần). Không chỉ chắc chắn nếu nó sẽ là một quyết định đúng đắn để sử dụng H2. Về cơ bản quyết định của tôi nên dựa trên sự hỗ trợ dài hạn là nó dựa trên đăng ký hoặc cộng đồng.Cơ sở dữ liệu h2 đáng tin cậy như thế nào?

Trả lời

29

Tốc độ này có được lưu giữ không?

Đó là gói.

nó sẽ được cộng đồng nguồn mở hỗ trợ trong thời gian dài?

Thật khó để dự đoán tương lai, tôi đoán đó là lý do tại sao không ai trả lời câu hỏi của bạn :-) Tôi chắc chắn nó sẽ được hỗ trợ, bởi vì đủ người sử dụng nó. H2 được sử dụng trong nhiều sản phẩm (nguồn mở và thương mại). Khá nhiều người thường xuyên trả lời các câu hỏi trong danh sách gửi thư. H2 hiện không có nhiều người viết, một lý do là người dùng thường hài lòng với các tính năng của nó, và bởi vì tốc độ phát triển hiện tại đủ nhanh và chất lượng mã là đủ tốt.

Hỗ trợ dựa trên đăng ký hiện không khả dụng nhưng được lên kế hoạch cho tương lai (luôn là kế hoạch cung cấp hỗ trợ thương mại tại một số thời điểm). Lý do nó chưa có sẵn là H2 chưa có đủ thị phần để bắt đầu một công ty.

21

H2 là một công cụ cơ sở dữ liệu tuyệt vời. Sau khi chúng tôi giải quyết một vấn đề không liên quan đến H2, chúng tôi đã chuyển từ PostgreSQL và MySQL (cả hai đều được hỗ trợ) sang H2. H2 trở thành lựa chọn cơ sở dữ liệu chính của chúng tôi.

Tốc độ là lý do chính, nhưng còn có các chế độ khác: chế độ được nhúng là tuyệt vời và cho phép chúng tôi linh hoạt cài đặt phần mềm trong thiết bị di động, thậm chí chia sẻ cơ sở dữ liệu trên đám mây, giả sử thông qua Dropbox!

Chúng tôi không sử dụng nhiều tính năng, vì chúng tôi "phụ thuộc lâu dài" thông qua "Datanucleus" (không kích hoạt, thủ tục, vv), nhưng ứng dụng của chúng tôi đủ phức tạp để đẩy H2! Và nó mang lại hoàn hảo.

+3

Vì vậy, bạn đang gợi ý rằng H2 có nhiều thay thế cho SQLite hơn bất kỳ thứ gì khác? – user1050755

+1

Tôi có thể nói chính xác là: http://database-management-systems.findthebest.com/compare/16-53/H2-vs-SQLite – marcolopes

29

Chỉ cần cung cấp một số thông tin bổ sung, trong năm 2010, chúng tôi đã chuyển từ H2 sang MySQL cho các cơ sở dữ liệu lớn của công ty. Lý do lớn nhất là động cơ H2 bên trong là đơn luồng. Khi các truy vấn lớn, chưa được tối ưu hóa đang chạy trên cơ sở dữ liệu của chúng tôi với 100 nghìn hoặc hàng triệu hàng, tất cả các hoạt động cơ sở dữ liệu khác sẽ dừng lại. Xem H2 documentation để biết thêm thông tin. Khóa hàng của H2 có vẻ tương đối chưa trưởng thành so với MySQL hoặc Postgres.

Ngoài ra, MySQL và Postgres cũng cung cấp cơ chế sao chép thay vì tự xoay của riêng bạn. Điều này cũng cho phép chúng tôi sao lưu hệ thống cơ sở dữ liệu của chúng tôi "sống" từ nô lệ thay vì chặn một cơ sở dữ liệu H2 trong khi chúng tôi đổ nó. Cuối cùng, mặc dù tôi đã không chạy thử nghiệm hiệu suất này, tôi nghi ngờ rằng mặc dù H2 đang sáng nhanh cho cơ sở dữ liệu cỡ vừa và nhỏ, khi bạn tăng kích thước cơ sở dữ liệu và đặc biệt là số truy vấn đồng thời, MySQL và Postgres sẽ bắt đầu để bằng nhau và sau đó tốt nhất hiệu suất tổng thể của nó - đặc biệt là nhìn vào phân phối thời gian truy vấn.

Chúng tôi tiếp tục sử dụng H2 cho cửa hàng, trong bộ nhớ và cơ sở dữ liệu thử nghiệm rất thành công. Cảm ơn Thomas nhiều vì nó!

+0

Tôi đồng ý. Tôi không thể đề nghị H2 cho các ứng dụng client-server lớn. – marcolopes

+0

@marcolopes Bằng 'lớn' có an toàn khi giả sử hơn 50 truy vấn đồng thời trên ít nhất 1 triệu hàng không? – Matical

+0

Uh, vâng. Đó là lớn. H2 có thể làm việc tốt nhưng tôi nghi ngờ các truy vấn đồng thời sẽ cần một cơ sở dữ liệu mở rộng hơn để hoạt động hiệu quả. – Gray