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?
Trả lời
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.
Vị trí của bạn có tiến triển sau 2 năm không? – Stephan
Không, tôi nghĩ tình hình vẫn như cũ. –
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í?) –
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.
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
Đố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.
- 1. Có bất kỳ lý do nào khiến tôi không nên sử dụng ObjectId trong địa chỉ REST2 của tôi là
- 2. Lý do sử dụng cơ sở dữ liệu SQLite có thể đọc được
- 3. Không thể duyệt tệp cơ sở dữ liệu H2?
- 4. Bất kỳ phần mềm nguồn mở nào có sử dụng cơ sở dữ liệu Orient DB? Bạn có kinh nghiệm với cơ sở dữ liệu đó không?
- 5. Heroku với Cơ sở dữ liệu H2
- 6. Có lý do nào khiến MicrosoftAjax.js không được rút gọn?
- 7. Có bất kỳ hướng dẫn thiết kế nào cho Cơ sở dữ liệu tài liệu không?
- 8. Lớp Bất động sản Không được bao gồm như là cột cơ sở dữ liệu SQLite
- 9. Có bất kỳ lý do thông thường nào để sử dụng open() thay vì fopen() không?
- 10. Di chuyển cơ sở dữ liệu MySQL phát triển sang cơ sở dữ liệu sản xuất
- 11. Loại dữ liệu chuỗi dài trong cơ sở dữ liệu H2
- 12. Truy cập Meteor cơ sở dữ liệu sản xuất
- 13. Có bất kỳ cơ sở dữ liệu đồ thị nghiêm trọng nào không được viết bằng Java không?
- 14. Làm thế nào để sử dụng lệnh DESC trong cơ sở dữ liệu H2?
- 15. ID tăng tự động trong cơ sở dữ liệu H2
- 16. Bất kỳ ưu điểm nào khi sử dụng Liquibase để di chuyển cơ sở dữ liệu?
- 17. Gói và sử dụng cơ sở dữ liệu nhúng (tệp H2.db) bên trong một Jar?
- 18. Cơ sở dữ liệu sản xuất và phát triển?
- 19. Tạo bảng với cơ sở dữ liệu h2
- 20. Đường ray 3. Tạo cơ sở dữ liệu sản xuất
- 21. Bất kỳ hướng dẫn cơ sở dữ liệu không gian tốt nào ngoài đó?
- 22. Bất kỳ lý do gì để vẫn sử dụng CVS?
- 23. Cách tìm số cột của bất kỳ bảng nào trong bất kỳ cơ sở dữ liệu nào từ cơ sở dữ liệu chủ của máy chủ sql?
- 24. Có bất kỳ lý do cú miễn phí nào có thể lý do mà không tải tất cả dữ liệu vào bộ nhớ không?
- 25. Không thể khôi phục Cơ sở dữ liệu, Cơ sở dữ liệu đang được sử dụng theo phiên
- 26. Có bất kỳ lý do gì khiến một chuỗi JS không tự cân bằng không? (xem ảnh)
- 27. Có bất kỳ mẫu chung nào để thiết kế các lớp cho cơ sở dữ liệu schemaless trong .NET không?
- 28. Tệp cơ sở dữ liệu nhúng Spring H2?
- 29. Bất kỳ lý do nào không sử dụng SQLObject trên SQLAlchemy?
- 30. Đặt lại cơ sở dữ liệu nhúng H2 theo định kỳ
tương tự như: http://stackoverflow.com/questions/4687156/how-reliable-is-h2-database – TJD
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
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. –