2012-02-14 20 views
8

Tôi không chắc chắn liệu có nên sử dụng Java Collections hoặc một số trong bộ nhớ DB (H2 hoặc HSQLDB - họ có lẽ là nhanh nhất). Tôi cần một kết quả hiệu suất tốt - sẽ có hàng trăm đối tượng/hàng, không có JOIN hoặc các truy vấn phức tạp hơn sẽ được thực hiện.Java Collections vs hiệu suất cơ sở dữ liệu trong bộ nhớ

Tôi đang thực sự cân nhắc trong bộ nhớ DB, vì kích thước giới hạn của đống java - các đối tượng mà tôi đang làm việc với có thể khá lớn và cũng sẽ có rất nhiều trong số họ (hàng trăm như tôi đã đề cập)

Bạn có nghĩ rằng nên sử dụng cơ sở dữ liệu trong bộ nhớ cho một lượng lớn dữ liệu?

+2

theo thuật ngữ hiện đại, hàng trăm đối tượng không nhiều. Khi bạn nói rằng các vật thể sẽ lớn - lớn như thế nào? – Sheriff

+3

Hàng trăm đối tượng là buồn cười, ngay cả khi mỗi đối tượng có một trăm trường. Bên cạnh đó, bộ nhớ đã đến từ đâu đó, và một DB sẽ có khả năng thêm một số chi phí. – delnan

+0

Vâng, _hundreds_ ... có thể là quá mức cần thiết ... đơn giản - có thể có rất nhiều đối tượng. – Igor

Trả lời

3

Hàng trăm đối tượng 10 KB vẫn chỉ là một vài MB. Giữ nó đơn giản là gợi ý của tôi. Hàng trăm nghìn đối tượng 1 KB sẽ vẫn dễ dàng khớp với một JVM 32 bit.

tôi sẽ không sử dụng một cơ sở dữ liệu trong bộ nhớ cho đến khi bạn đang nhận được vào GBS bộ dữ liệu. Nếu bạn có hàng trăm GB, tùy chọn duy nhất của bạn là sử dụng cơ sở dữ liệu của một số loại.

Disclaimer: tôi sử dụng trong cơ sở dữ liệu bộ nhớ và thậm chí còn viết một hoặc hai.

3

Cố gắng làm điều đó với các bộ sưu tập. Nếu sau đó bạn nhận ra một vấn đề bạn vẫn có thể swich. Tất cả đều là vấn đề trừu tượng hóa việc triển khai để các thuật toán của bạn không mong đợi một hoặc một thuật toán khác. (Tuy nhiên, một "sớm tối ưu hóa là ma quỷ" rant)

2

Như những người khác đã nói, "hàng trăm" thực sự là không nhiều, và bây giờ có vẻ như bạn thậm chí còn nói rằng có khả năng ít hơn hàng trăm. Và nếu kích thước heap là một vấn đề bạn có thể Increase the JVM Heap Size

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