`

android 中SQLite数据库多条插入如何提高效率

阅读更多

最近在开发的过程中出现了对sqlite数据库进行多条插入操作,让人无法忍受的是插入200条及其简单的数据时,竟然花费了将近5秒钟,当我测试2000条时,直接挂掉了。

开始的源码如下
long starttime = System.currentTimeMillis();
System.out.println(starttime+"");

for (int i = 0; i< 2000;i++){
myDB.execSQL("insert into meetings (id , mainid) values ( '1','1')");
}
long endtime = System.currentTimeMillis();
System.out.println(endtime);
System.out.println((endtime-starttime)/1000);

后来上网查了下,主要是每次的execSQL操作都是对数据库的一次事务,估计有很多相关配套的操作重复执行。让人无法忍受的操作速度。

下面是优化的代码

long starttime = System.currentTimeMillis();
System.out.println(starttime+"");
myDB.beginTransaction();
for (int i = 0; i< 2000;i++){
myDB.execSQL("insert into meetings (id , mainid) values ( '1','1')");
}
myDB.setTransactionSuccessful();
myDB.endTransaction();
long endtime = System.currentTimeMillis();
System.out.println(endtime);
System.out.println((endtime-starttime)/1000);

在执行前开启事务,实行过后再关闭。这样的话,200条数据不到1秒钟,而2000条数据也就才3.7秒钟。

分享到:
评论

相关推荐

    android中SQLite数据库中用insert同时插入多条记录的方法和效率比较

    Android 中 SQLite 数据库中用 insert 同时插入多条记录的方法和效率比较 在 Android 开发中,我们常会遇到这样一种情况:在建立一个 SQLite 数据库时,想同时插入大量数据。那么应该怎么做呢?下面我们将比较三种...

    Android使用SQLite数据库进行增删改查详细案例

    SQLite数据库的优势在于它不需要单独的服务进程,可以直接嵌入到应用程序中,支持基本的SQL语法,非常适合移动设备上的本地数据存储。本案例将详细介绍如何在Android应用中使用SQLite进行增(Create)、删(Delete)...

    android 操作sqlite数据库源码

    通过这个源码实例,开发者可以学习到如何在Android应用中有效地操作SQLite数据库,理解基本的数据操作流程以及如何处理数据库版本变更。这不仅对于初学者来说是宝贵的实践资源,对于经验丰富的开发者也有助于复习和...

    Sqlite数据库里插入数据的条数上限是500

    今天在向Sqlite数据库里插入数据的时候,报了这样一个错: 代码如下: “too many terms in compound SELECT” 去Stackoverflow上查了一下,发现有人回答这个问题:链接 原来一次性向数据库里插入数据的条数不能太...

    android操作数据库Sqlite源代码

    7. **事务处理**:对于涉及多条记录的操作,如批量插入或更新,使用`SQLiteDatabase.beginTransaction()`、`setTransactionSuccessful()`和`endTransaction()`来确保原子性。 8. **异步操作**:为了不影响UI的响应...

    Android开发中的SQLite数据库的增删改查工具类

    在Android开发中,SQLite数据库是应用进行本地数据存储的主要方式之一。SQLite是一个轻量级的、关系型的数据库,它不需要单独的服务器进程,并且完全支持SQL标准。本篇文章将详细解析标题和描述中提到的两个关键文件...

    Android连接sqlite数据库进行增删改查和事务操作

    本教程将详细介绍如何在Android中连接SQLite数据库,并执行基本的增删改查(CRUD)操作以及事务处理。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过扩展`SQLiteOpenHelper`类来实现。这个类提供...

    Android SQLite数据库应用

    在Android应用开发中,SQLite数据库是一个至关重要的组件,它为应用程序提供本地数据存储能力。SQLite是一个轻量级的关系型数据库,具有ACID(原子性、一致性、隔离性和持久性)事务支持,使得开发者可以在Android...

    基于android的个人日记本程序(Sqlite数据库).zip

    在日记本程序中,添加、编辑和删除日记的流程可能涉及多条SQL语句,因此可以包裹在一个BEGIN...COMMIT或BEGIN...ROLLBACK事务中。 总结来说,这个基于Android的个人日记本程序巧妙地融合了SQLite数据库、Java编程和...

    uniAPP使用sqlite数据库demo

    在移动应用开发中,uniAPP是一个非常流行的框架,它允许开发者使用一套代码来构建多平台的应用,包括iOS、Android、Web等。SQLite则是一个轻量级的嵌入式数据库,常用于移动设备上的本地数据存储。这个“uniAPP使用...

    android的SQLite数据库基础操作(创建数据库,更新,增删改查)

    本篇文章将深入探讨如何在Android应用中进行SQLite数据库的基础操作,包括创建数据库、数据更新、插入与删除以及查询。 ### 1. 创建SQLite数据库 首先,我们需要创建一个SQLiteOpenHelper的子类,这个类是Android...

    android连接SQLite数据库源码.zip

    在实际开发中,为了保证数据安全和性能,我们还需要注意一些最佳实践,例如关闭不再使用的游标和数据库连接,以及使用事务处理多条SQL语句以提高效率。 通过分析和理解这个源码,开发者可以深入掌握Android应用如何...

    安卓SQLite数据库相关-实现对没填的工时记录操作android数据库sqlite.zip

    综上所述,这个项目主要涵盖了Android应用中SQLite数据库的基本操作,包括创建表、插入、查询、更新和删除工时记录,以及可能涉及的事务处理。开发者在实际使用时,应根据具体需求对提供的代码进行调整和优化。

    Android 之 SQLite数据库的使用

    接下来,我们将深入探讨如何在Android中使用SQLite数据库。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过继承`SQLiteOpenHelper`类来实现。这个类提供了创建、升级和打开数据库的方法。例如,...

    android sqlite(数据库)

    10. 性能优化:为提高SQLite数据库的性能,可以考虑使用合适的数据类型,创建索引,避免复杂的查询,以及使用批量插入等策略。 以上知识点涵盖了Android应用中SQLite数据库的基础使用和常见操作,对于开发高效、...

    Sqlite数据库源码demo

    - 使用`BEGIN IMMEDIATE TRANSACTION`和`COMMIT`包围多条SQL操作,提高批量插入和更新的速度。 - 定期使用`ANALYZE`命令分析表,优化查询计划。 - 为经常查询的字段创建索引,提升查询性能。 综上所述,这个...

    android SQLite数据库的增删改实例

    本教程将深入探讨如何在Android中进行SQLite数据库的增、删、改操作。 首先,让我们了解Android SQLite数据库的基本组成部分。一个SQLite数据库由一个或多个表格组成,每个表格包含一系列列,列定义了数据类型。...

    android新手数据之SQLite数据库存储

    在Android开发中,SQLite数据库是应用内数据存储的常用方式,尤其适合小规模的数据存储。SQLite是一个轻量级的、关系型的数据库,它不需要单独的服务器进程,且支持标准SQL语法,使得开发者能方便地进行数据操作。...

    安卓SQLite数据库相关-简易记事本支持新建页面确认自动换行记事本数据使用SQLite本地存储源码也有比较丰富的注释.rar

    标题中的“安卓SQLite数据库相关-简易记事本支持新建页面确认自动换行记事本数据使用SQLite本地存储源码也有比较丰富的注释”表明这是一个关于Android应用开发的项目,特别涉及SQLite数据库的使用。这个应用是一个...

    Android中SQLite数据库知识点总结

    Android 中 SQLite 数据库知识点总结 SQLite 是一个轻量级数据库,它是 D. Richard Hipp 建立的公有领域项目,在 2000 年发布了第一个版本。它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需要占用几百 ...

Global site tag (gtag.js) - Google Analytics