如何管理本地数据库中的数据保存速度

时间:2016-12-12 12:34:07

标签: java android

示例:

假设每个mili秒有一个方法ondiscover(),并找到数据。

并将数据保存在一个数组temp_array中并将数据推送到本地数据库callThreadToSavedataInLocalDB()

callThreadToSavedataInLocalDB()ondiscover()已满并且应用崩溃一段时间之后慢于temp_array。如何处理这个问题。

如何提高数据保存的速度,或者如果您有任何其他想法,请建议我。

我正在给你高级代码的想法如何工作。 ArrayList mapList; ArrayList tempList;

我们有一个方法

ondiscover(arraylist arg)
{

tempList = addAll(arg)    // make clone the arg  list

if(tempList != null){
mapList = tempList;

tempList.clear();


if(not alive){

 callThreadToSavedataInLocalDB(mapList); // Thread to save data in Sqlite

}
}
}

在上面的代码ondiscover中调用非常毫秒并且callThreadToSavedataInLocalDB可能需要一些时间来将数据存储在本地数据库中所以有时tempList有 更多可能导致应用程序崩溃的数据。

2 个答案:

答案 0 :(得分:0)

为了在Sqlite数据库中插入大数据,我们可以使用事务功能。

以下链接可以帮助您:

Android Database Transaction

答案 1 :(得分:0)

如果您使用交易,您可以提高表现。

基本上你需要

1 - Open the transaction
2 - loop over element to add
2.1 - Add element
3 - Close the transaction

此外,您还可以使用如下查询:

INSERT INTO 'table'
      SELECT 'a' AS 'column1', 'b' AS 'column2'
      UNION ALL SELECT 'c', 'd'
      UNION ALL SELECT 'e', 'f'

这是与标准sql相同的查询

INSERT INTO table
values
('a', 'b'),
('c', 'd'),
('e', 'f'),