我用的是poi框架去解析excel数据,大概有十万条。
我想先通过一行一行地读取,然后保存在一个集合里面list。
解析完成了,这个list就包含了十万个对象的信息了。
然后,再把这个list导入 数据库。
我的困惑是:十万条,一条有二十个字段,一下子保存在集合中,会不会内存不够,或者其他事故呢?如何存在,如何改变上面的思路,减少事故发生。
比如,我可不可以边解析边导入,导入后就删除list的呢?这个过程怎么实现?给个思路。
PHP中文网2017-04-18 09:42:56
読み取りと書き込みを同時に行う方法を試すことができます。つまり、POI から行を読み取り、データベースに行を書き込み、送信します。 POIからデータを読み込むとデータベースへの書き込みも完了します。この方法の欠点は、データの書き込みが失敗してプログラムが中止された場合、中止された行から読み取りと書き込みを再開する必要があることです。そのため、場合によっては、最後の進行状況を継続できるように、中止された行の数を記録する必要があることです。やり直しになります。
PHP中文网2017-04-18 09:42:56
@一书生VOID のメソッドは、一度に数百行または数千行 (その数はメモリの量によって異なります) を読み取ってから書き込むように改良することもできます。これにより、占有メモリが減り、データベース操作の数が減ります。