2010-04-26 29 views
15

Tôi tìm thấy rất nhiều so sánh ở đây, nhưng không phải cái này; Vì vậy, điều gì là tốt nhất trong mỗi loại?Derby/JavaDB vs SQLiteJDBC

+0

Bạn sẵn sàng làm gì? – Macarse

+0

@Macarse một ứng dụng độc lập nhỏ trong Java –

Trả lời

9

Có so sánh đầy đủ tại SQLite's site.

SQLite bị hạn chế nhiều hơn, vì nó chỉ hỗ trợ một tập con nhỏ của SQL92, trong khi Derby (nay là JavaDB) có hỗ trợ đầy đủ của SQL92 và SQL99.

+0

Tốt đẹp! Tất nhiên tôi muốn biết nếu các điểm đội Derby xem về so sánh này .. nhưng nhờ anyway :) –

+5

Đây là một chủ đề trong danh sách gửi thư người dùng derby: http://old.nabble.com/Derby-v-SQLite -td13496423.html – mgv

+0

vẫn không phải những gì tôi mong đợi, nhưng cảm ơn! –

-1

Một điều bạn nên ghi nhớ về SQLite là, ngoài việc chỉ hỗ trợ một tập hợp con của SQL92, chỉ có chuỗi tạo cơ sở dữ liệu SQLite mới có thể truy cập nó. Nếu bạn có thể sống với điều đó, hãy lấy nó để có hiệu suất tốt hơn.

+4

Điều đó không chính xác. Chúng ta có một ứng dụng truy cập cơ sở dữ liệu SQLite của nó từ nhiều luồng. Xem https://www.sqlite.org/threadsafe.html - trích dẫn: Được tuần tự hóa. Trong chế độ được tuần tự hóa, SQLite có thể được sử dụng một cách an toàn bởi nhiều luồng không bị giới hạn. [...] Chế độ mặc định được tuần tự hóa. – Bluehorn

+0

Câu trả lời phải được cập nhật – tno2007

5

Tôi thực thi một câu lệnh SQL phức tạp có hơn 6000 hàng 10000 lần trong Máy chủ Websphere của tôi. Tổng số lần thực hiện thuần là như thế:

  Derby (In Memory) Oracle(standard DB) SQLite (In Memory) HSQLDb (In Memory) 
      nano sec. second nano sec. second nano sec. second nano sec. second 
1. try 58000000 0,058 6149976000 6,1 1141988000 1,14 999403000 1,00 
2. try 78560000 0,078 5268477000 5,2 1182621000 1,18 1338705000 1,34 
3. try 58849000 0,058 5200898000 5,2 1133003000 1,13 2239527000 2,24 
4. try 60901000 0,06 5435216000 5,4 1205442000 1,21 1370711000 1,37 
5. try 58798000 0,058 6501929000 6,5 1186734000 1,19 1001800000 1,00 
6. try 62928000 0,062 5913053000 5,9 1224470000 1,22 1066736000 1,07 
7. try 71171000 0,071 5111207000 5,1 1200769000 1,20 1304524000 1,30 
8. try 66913000 0,066 5517989000 5,5 1173495000 1,17 1299230000 1,30 
9. try 58777000 0,058 7209555000 7,2 1179013000 1,18 1031795000 1,03 
10. try 75299000 0,075 5356514000 5,3 1182715000 1,18 1368461000 1,37 
average 65019600 0,064 5766481400 5,7 1181025000 1,18 1302089200 1,30 

Tôi rõ ràng là so sánh Derby, SQLite và HSQLDB. Oracle không phải là một db trong bộ nhớ. Nhưng tôi đặt nó là kết quả của bảng bởi vì để hiển thị sự khác biệt tốc độ giữa một db trong bộ nhớ và db bình thường.

PS: Trong kết quả SQLite và HSQLDB không ổn định. Vì vậy, tôi đã chọn 10 kết quả ổn định trong 100 lần thử. Đôi khi HSQLDB nhanh hơn SQLite. Tôi nghĩ rằng hiệu suất của họ là như nhau.

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