Một điều tôi đã gặp phải trong một dự án trễ là các loại ngày của MySQL không thể lưu trữ mili giây. Thời gian biểu và dấu thời gian chỉ giải quyết thành giây! Tôi không thể nhớ chính xác hoàn cảnh mà điều này đã đưa ra nhưng tôi đã cần phải lưu trữ một int có thể được chuyển đổi thành một ngày (hoàn thành với mili giây) trong mã của tôi.
Trình điều khiển JDBC của trình điều khiển JDBC kết quả bộ nhớ cache theo mặc định, đến mức nó sẽ khiến chương trình của bạn hết bộ nhớ (ném lên ngoại lệ OutOfMemory). Bạn có thể tắt nó đi, nhưng bạn phải làm điều đó bằng cách thông qua một số thông số khác thường vào báo cáo kết quả khi bạn tạo ra nó:
Statement sx = c.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);
sx.setFetchSize(Integer.MIN_VALUE);
Nếu bạn làm điều đó, trình điều khiển JDBC sẽ không kết quả trong bộ nhớ cache, và bạn có thể thực hiện các truy vấn lớn NHƯNG nếu bạn đang sử dụng hệ thống ORM thì sao? Bạn không tự tạo các câu lệnh và do đó bạn không thể chuyển bộ nhớ đệm. Mà về cơ bản có nghĩa là bạn đang hoàn toàn hơi say nếu bạn là hệ thống ORM đang cố gắng để làm một cái gì đó liên quan đến rất nhiều hồ sơ.
Nếu chúng có ý nghĩa nào đó, chúng sẽ làm cho cấu hình đó có thể định cấu hình được bằng URL JDBC. Oh well.
Nguồn
2009-05-09 05:02:31
Từ được in nghiêng 'thực tế' sẽ khiến câu hỏi này bị đóng là chủ quan và tranh luận, tất cả đều do chính nó. – chaos
ok, đã thay đổi * real * thành mã nguồn đóng –
Tôi muốn đề xuất xóa toàn bộ cụm từ đó. "năm sử dụng các sản phẩm cơ sở dữ liệu như ..." –