2012-08-21 37 views
14

Tôi gần đây đang xem xét việc tạo một ứng dụng sử dụng cơ sở dữ liệu h2 làm cơ sở dữ liệu chính của nó (vì nó đi kèm với JBoss), nhưng tôi hơi lo lắng về điều đó. Tôi đã đọc ở một vài nơi (bảng thảo luận chủ yếu) rằng người ta không nên sử dụng h2 trong sản xuất. Có lý do cụ thể cho điều đó không?Có bất kỳ lý do nào khiến cơ sở dữ liệu h2 không được sử dụng trong sản xuất không?

+3

tương tự như: http://stackoverflow.com/questions/4687156/how-reliable-is-h2-database – TJD

+0

Cảm ơn bạn đã hướng dẫn tôi đến đó. Nếu có thêm bất cứ điều gì để thêm tôi cũng vui khi đọc, vì những câu trả lời này là 18 tháng tuổi. – bjedrzejewski

+0

Câu trả lời thứ hai cho câu hỏi được liên kết cung cấp một liên kết trực tiếp đến tài liệu; liên kết đó sẽ cung cấp câu trả lời về việc các vấn đề đa luồng có thay đổi hay không. Nếu không, đó là một lý do chính để không sử dụng nó trong sản xuất, IMO. –

Trả lời

15

Những lý do chính không sử dụng H2 (hoặc HSQLDB, hoặc Derby County) phục vụ sản xuất là:

  • Xác suất lỗi nghiêm trọng: so với 'lớn' sở dữ liệu Oracle, IBM DB 2, MS SQL Server , MySQL, PostgreSQL, các cơ sở dữ liệu Java tương đối mới và do đó có thể không ổn định (có lỗi). Xin lưu ý điều này đúng với tất cả các sản phẩm mới hơn, bao gồm cơ sở dữ liệu NoSQL và các bản phát hành mới của cơ sở dữ liệu 'lớn'. Nói chung, càng có nhiều sản phẩm được kiểm tra thì xác suất lỗi càng ít. Tất nhiên nó phụ thuộc vào trường hợp sử dụng của bạn cho dù nó có ý nghĩa để trả tiền (có thể là rất nhiều tiền) cho lợi thế này. Trong mọi trường hợp, bạn sẽ cần phải sao lưu dữ liệu, trong trường hợp lỗi phần cứng chẳng hạn.

  • Thiếu tính năng và tối ưu hóa: cơ sở dữ liệu 'lớn' có nhiều tính năng và tối ưu hóa hơn cho các trường hợp sử dụng đặc biệt. Cho dù bạn có cần các tính năng đó tùy thuộc vào bạn hay không.

  • Hỗ trợ thương mại: dễ dàng hơn để nhận hỗ trợ cho cơ sở dữ liệu lớn hơn. Xin lưu ý là commercial support is available for H2. HSQLDB cũng cung cấp hỗ trợ thương mại. IBM đã từng cung cấp hỗ trợ cho Apache Derby (tốt, IBM Cloudscape), nhưng tôi tin rằng họ đã dừng lại.

+6

Vị trí của bạn có tiến triển sau 2 năm không? – Stephan

+5

Không, tôi nghĩ tình hình vẫn như cũ. –

+2

Vị trí của bạn có thay đổi sau 3 năm không? : D (với MVStore mới trong tâm trí?) –

8

Theo kinh nghiệm cá nhân của tôi, H2 phiên bản 1.2.147 có vẻ rất đáng tin cậy, 100% những thành công trong khoảng 60 cài đặt, nhưng khách hàng của tôi chỉ có cơ sở dữ liệu tương đối nhỏ (400 MB là kích thước lớn hơn) và chương trình của tôi chỉ sử dụng một kết nối (lol), chỉ gần đây tôi mới bắt đầu sử dụng nhiều kết nối nhưng với multi_threaded false. Tôi đã bị hỏng với một số phiên bản trước và tôi sợ thử các phiên bản mới hơn.

+2

Khi bạn nói rằng bạn chỉ sử dụng một kết nối - bạn có nghĩa là chỉ có một người dùng truy cập cơ sở dữ liệu hoặc nó sẽ tương đương với việc nó được triển khai trên JBoss và JBoss quản lý nó? – bjedrzejewski

1

Đối với tôi, tôi không có tiền thuê để không sử dụng H2DB trong sản xuất cho các dự án cỡ trung bình. Chúng tôi đã triển khai một hệ thống sản xuất cho khoảng mười lăm khách hàng sử dụng H2DB, chúng tôi đã trải qua quá trình cài đặt và sao lưu rất dễ dàng và chưa có vấn đề gì liên quan đến cơ sở dữ liệu.

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