Tôi biết mình đã trễ gửi câu trả lời ở đây, nhưng tôi muốn đảm bảo không ai phạm sai lầm khi sử dụng Derby trên bất kỳ cơ sở dữ liệu chất lượng sản xuất nào trong tương lai. Tôi xin lỗi trước vì làm thế nào tiêu cực câu trả lời này là - Tôi đang cố gắng để nắm bắt toàn bộ cảm xúc của một nhóm kỹ thuật bị bệnh trong một Q & một câu trả lời ngắn gọn.
Kinh nghiệm của chúng tôi khi sử dụng Derby trong nhiều triển khai của khách hàng nhỏ đã khiến chúng tôi nghi ngờ nghiêm túc việc sử dụng nó hữu ích như thế nào đối với bất kỳ môi trường thử nghiệm nào.Một số vấn đề chúng tôi đã có:
- Deadlocks do leo thang khóa - đây là lớn nhất một và xảy ra đối với một khách hàng về một lần mỗi tuần hoặc hai
- gián đoạn I/Os nguyên nhân Derby thất bại hoàn toàn trên Solaris (có thể không phải là vấn đề trên các nền tảng khác) - chúng tôi đã phải xây dựng một bảo mật để bảo vệ nó khỏi những lỗi này
- Không thể xử lý các truy vấn phức tạp mà MySQL/PostgreSQL xử lý dễ dàng
- Thực hiện đăng nhập giao dịch lỗi gây ra tham nhũng bảng yêu cầu chúng tôi xuất cơ sở dữ liệu và sau đó nhập lại (không thể chỉ thả bảng bị hỏng) và chúng tôi vẫn mất bảng trong quá trình này - cảm ơn lòng tốt chúng tôi đã có một bản sao lưu
- Không
LIMIT
cú pháp
- hiệu suất thấp cho các truy vấn phức tạp
- hiệu suất thấp cho các bộ dữ liệu lớn
Do thực tế là nó được nhúng, Derby là một đối thủ cạnh tranh với SQLite hơn là PostgreSQL, một cơ sở dữ liệu chất lượng sản xuất cực kỳ trưởng thành được sử dụng để lưu trữ các tập dữ liệu nhiều petabyte bởi một số trang web lớn nhất trên thế giới. Nếu bạn muốn sẵn sàng cho sự tăng trưởng và không muốn bị bắt gặp gỡ gỡ lỗi mã cơ sở dữ liệu của người khác, tôi khuyên bạn không nên sử dụng Derby. Tôi không có bất kỳ kinh nghiệm với SQLite, nhưng tôi không thể tưởng tượng nó là ít đáng tin cậy hơn Derby đã được cho chúng tôi và vẫn được phổ biến như nó được.
Thực tế, chúng tôi đang trong quá trình chuyển sang PostgreSQL ngay bây giờ.
Dự đoán của tôi: điều chỉnh đúng cách PostgreSQL sẽ hút Derby ở tất cả trừ các truy vấn nhỏ nhất. Tại sao bạn muốn chuyển khỏi PostgreSQL? Bạn đã dành thời gian để điều chỉnh cơ sở dữ liệu của bạn đúng chưa? – intgr