sql >> Database >  >> RDS >> Mysql

Spring Batch - JdbcCursorItemReader gooit OutOfMemoryError met grote MySQL-tabel

Er is een probleem in het MySql JDBC-stuurprogramma dat ervoor zorgt dat de hele gegevensset in het geheugen wordt geladen, ongeacht de parameters die u hebt doorgegeven aan de methode voor het maken van instructies. Zie http://dev. mysql.com/doc/refman/5.0/en/connector-j-reference-implementation-notes.html voor hoe correct een cursor wordt geopend.

Hier is hoe ik het doe:

<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. Kan niet beslissen of normalisatie of de-normalisatie zou werken

  2. MariaDB RONDE() vs VLOER()

  3. Waarschuwing:mysqli_error() verwacht precies 1 parameter, 0 gegeven

  4. Database Design:naar EAV of niet naar EAV?