簡體   English   中英

java中處理數據並保存在數據庫中的有效方法

[英]The efficient way to process data and save in database in java

如果文件的大小至少為 100KB-800KB ,是否有更有效的數據處理方式。

我只知道的方式是關於

  • 從文件中獲取數據並將其存儲在 Java Object 中。
  • 處理數據。
  • 使用 For 循環將數據保存在 Database[Insert, Update] 中。

**在每個循環中,項目將始終關閉數據庫連接並在新循環開始時重新連接。

如果文件很大,我認為您最關心的應該是讀取和處理 memory 中的數據。 因為如果文件大小很大,那么如果您讀取文件一次並處理這些數據,那么您將需要大量 memory。

對於閱讀,您應該嘗試閱讀為 stream 然后處理這些數據,然后最后寫入 memory。

您不能在每個循環中關閉數據庫連接。 導致創建數據庫連接成本高,重試重用現有連接。應用程序退出時關閉連接。

您需要 stream 在文件中的數據中,將其收集成批次並在每個批次滿時插入數據庫。

假設 XML(變得非常大)FileInputStream -> XmlPullParser -> 創建 Object -> 添加到列表 -> 當列表達到大小閾值時進行批量插入。

這實際上取決於每個項目的數據有多大,但例如,如果您有一個 object 有 12 個字段(即 12 列)並且您需要插入它。 我認為每 GB 的總 RAM 每批可以處理 500 個項目。 從在 Android 4.4.2 上運行的 1gb 設備到在 Android 10 上運行的 4gb 設備,這對我來說非常適合。

用於對包含 80,000 個項目的 23Mb xml 文件進行基准測試

在 Android 4.4.2 設備上插入大約需要 3 分鍾。

在 Android 10 設備上插入大約需要 20 秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM