Eine Sache, die ich spät in einem Projekt lief, ist, dass MySQL-Datumstypen keine Millisekunden speichern können. Datums- und Zeitstempel werden nur in Sekunden aufgelöst! Ich kann mich nicht an die genauen Umstände erinnern, dass dies aufkam, aber ich musste schließlich ein int speichern, das in ein Datum (komplett mit Millisekunden) in meinem Code umgewandelt werden konnte.
Die MySQL-JDBC-Treiber-Cache-Ergebnisse standardmäßig, bis zu dem Punkt, dass Ihr Programm nicht mehr genügend Arbeitsspeicher (OutOfMemory-Ausnahmen). Sie können deaktivieren, aber Sie müssen es tun, indem sie einige ungewöhnliche Parameter in der Anweisung vorbei, wenn Sie es schaffen:
Statement sx = c.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);
sx.setFetchSize(Integer.MIN_VALUE);
Wenn Sie das tun, wird der JDBC-Treiber nicht Cache-Ergebnisse im Speicher und Sie kann große Anfragen ABER was tun, wenn Sie ein ORM-System verwenden? Sie erstellen die Anweisungen nicht selbst und können daher nicht zwischenspeichern. Was im Grunde bedeutet, dass Sie völlig verwirrt sind, wenn Sie ORM-System versuchen, etwas mit vielen Datensätzen zu tun.
Wenn sie etwas Sinn hatten, würden sie das durch die JDBC-URL konfigurierbar machen. Naja.
Das kursiv geschriebene Wort "real" wird diese Frage als subjektiv und argumentativ abgeschlossen. – chaos
ok, geändert * real * zu closed-source –
Ich würde vorschlagen, diese Phrase vollständig zu entfernen. "Jahre der Verwendung von Datenbankprodukten wie ..." –