sql >> Database teknologi >  >> RDS >> Mysql

Spring Batch - JdbcCursorItemReader kaster OutOfMemoryError med stort MySQL-tabel

Der er et problem i MySql JDBC-driveren, som forårsager indlæsning af hele datasættet i hukommelsen uanset de parametre, du har videregivet til sætningsoprettelsesmetoden. Se http://dev. mysql.com/doc/refman/5.0/en/connector-j-reference-implementation-notes.html for hvordan man åbner en markør korrekt.

Sådan gør jeg det:

<bean class="org.springframework.batch.item.database.JdbcCursorItemReader">
  <property name="verifyCursorPosition" value="false" />
   <property name="dataSource" ref="remoteDataSource" />
   <property name="rowMapper">
     <bean class="org.springframework.jdbc.core.SingleColumnRowMapper" />
   </property>
   <property name="fetchSize">
     <util:constant static-field="java.lang.Integer.MIN_VALUE" />
   </property>
   <property name="sql">
     <value>SELECT foo, bar FROM baz</value>
  </property>
</bean>



  1. Gensidigt eksklusive værdier i SQL

  2. SQLSTATE[HY000] [1045] undtagelse under forbindelse til database ved hjælp af 000webhost

  3. Hvorfor er denne mysql-forespørgsel (med er null-check) så langsommere end denne anden?

  4. SQL Query som returnerer en tabel, hvor hver række repræsenterer en dato i et givet interval