Una cosa che ho incontrato in un progetto è che i tipi di data di MySQL non possono memorizzare millisecondi. Datetimes e timestamp risolvono solo in secondi! Non riesco a ricordare le circostanze esatte in cui è emerso, ma alla fine ho dovuto memorizzare un int che poteva essere convertito in una data (completa di millisecondi) nel mio codice.
I driver JDBC di MySQL memorizzano i risultati nella cache per impostazione predefinita, al punto che causerà l'esaurimento della memoria del programma (sollevare eccezioni OutOfMemory). È possibile disattivarlo, ma devi farlo passando alcuni parametri inusuali nella dichiarazione al momento della creazione:
Statement sx = c.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);
sx.setFetchSize(Integer.MIN_VALUE);
Se lo fai, il driver JDBC volontà non risultati nella cache in memoria, e si puoi fare query enormi MA e se stai usando un sistema ORM? Non si creano le affermazioni da soli e pertanto non è possibile disattivare la memorizzazione nella cache. Il che significa sostanzialmente che sei completamente fregato se il tuo sistema ORM sta cercando di fare qualcosa che coinvolge un sacco di record.
Se avessero un senso, lo renderebbero configurabile tramite l'URL JDBC. Oh bene.
fonte
2009-05-09 05:02:31
La parola in corsivo "reale" chiuderà questa domanda come soggettiva e argomentativa, tutto da solo. – chaos
ok, cambiato * reale * in closed-source –
Suggerirei di rimuovere completamente quella frase. "anni di utilizzo di prodotti di database come ..." –