2014-10-07 13 views
6

Trong ứng dụng của tôi, tôi kết nối với cơ sở dữ liệu H2 và gần đây tôi đang xem xét cách cơ sở dữ liệu này tắt máy.Tắt cơ sở dữ liệu H2; Compact vs Defrag?

Trong chuỗi kết nối của tôi, tôi đã thiết DEFRAG_ALWAYS=true, mà theo H2 doc

Mỗi lần cơ sở dữ liệu được đóng lại, nó hoàn toàn được chống phân mảnh (SHUTDOWN DEFRAG).

Bây giờ tôi giả định rằng khi JVM đang tắt, móc tắt máy sau đó sẽ tắt cơ sở dữ liệu và chống phân mảnh nó (như thực hiện SHUTDOWN DEFRAG).

Nhưng nếu tôi đã thực hiện SHUTDOWN COMPACT trước khi thoát khỏi ứng dụng, trong khi có DEFRAG_ALWAYS=true được áp dụng trong chuỗi kết nối, Quy trình tắt máy nào sẽ được sử dụng?

Trả lời

6

Nếu bạn thực hiện shutdown bằng tay, thì đây có ưu tiên hơn các thiết lập (defrag_always=true). Vì vậy, nếu bạn thực hiện shutdown compact, thì đây là những gì được thực hiện và defrag không được thực hiện. Nếu bạn thực hiện shutdown defrag, thì việc này được thực hiện, bất kể cài đặt là gì. Nếu bạn chỉ đóng cơ sở dữ liệu bình thường, thì cài đặt defrag_always sẽ được sử dụng.

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