首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >加速数据库写入

加速数据库写入
EN

Stack Overflow用户
提问于 2011-07-01 19:34:00
回答 2查看 569关注 0票数 3

我有一个使用CursorAdapter来显示一些数据的ListActivity。此数据是web服务调用的结果。

我从web服务调用中获得响应,使用org.json.*库解析它,然后将结果写入应用程序的SQLite3数据库。然后重新查询ListActivity的游标,数据显示在列表中。

我的问题是数据库写得太慢了。我能想到的唯一一件事就是不使用CursorAdapter,只将这些数据保存在内存中。我希望有人能有另一个建议来加快速度。也许是某种批量插入?

应该注意的是,我使用ContentProvider来执行插入操作。所以我调用getContentResolver().insert(...)。

以下是一个测试的一些时间,该测试通过LAN检索了56行数据并显示了它们:

响应时间: 178ms

解析json的时间: 16ms

向数据库写入56行的时间: 5714ms

对于这些数据量,我最终希望数据库写入的时间不超过1000ms。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-01 19:58:56

我曾经遇到过这样的问题,我发现首先在数据库上调用beginTransaction(),然后再执行插入查询。示例代码:

代码语言:javascript
运行
AI代码解释
复制
    public void insertClassBatch(ArrayList<Class> batch) throws Exception
{
    this.getWritableDatabase().beginTransaction();
    for (Class c : batch)
    {
        this.insertClassStatement.bindString(1, c.getClassName());
        this.insertClassStatement.bindString(2, c.getClassValue());
        this.insertClassStatement.executeInsert();
    }
    this.getWritableDatabase().setTransactionSuccessful();
    this.getWritableDatabase().endTransaction();
}

这将插入100行(在这种情况下为一批的大小)从大约30秒减少到300ms左右。

票数 2
EN

Stack Overflow用户

发布于 2011-07-01 19:36:37

您是对写入数据库的每一行执行一次往返,还是将所有行都批处理为一次往返?我敢打赌,如果你不批量处理,网络延迟就是罪魁祸首。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6552469

复制
相关文章
Python读取Excel文件并写入数据库
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是:pip install xlrd 2:安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-Compiler以及winsdk_web,如果大家没有这些软件~可以咨询我们的辅导员索要相关安装工具。 3:步骤1和2 准备好了之后,我们就可以开始安装pandas了,安装命令是:pip install pandas
Python之道
2020/04/10
4K0
Python读取Excel文件并写入数据库
Kepware实现向数据库实时写入数据
前一篇文章中有网友留言(Kepware 如何实现与PLC的通讯(点击阅读)),想了解如何将kepware采集到数据写入数据库,今天以SQL Server为例,给大家分享一下如何实现,当然你可以换为其他数据库如MySQL,Oracle,Access等支持ODBC的。
剑指工控
2021/11/09
5.3K0
Kepware实现向数据库实时写入数据
关于Excel表操作-写入数据库操作
Excel表要写入数据库,毕竟通过pandas来操作复杂的数据还是很有难度的,有多少种数据库,就有多少种数据库引擎,要下载多少python数据库包,同样对Excel写入数据库的操作,可以基于excel按行写入,也可以通过pandas处理,但pandas处理效率不高。
python与大数据分析
2022/05/19
1.3K0
关于Excel表操作-写入数据库操作
利用python把shp文件写入PostgresSQL数据库
把shp文件写入pg数据库。注意:shp文件含点、线、面(‘POINT’,'LINESTRING','POLYGON')~这是重点。
一个有趣的灵魂W
2020/09/15
2.5K0
利用python把shp文件写入PostgresSQL数据库
[Python程序]扫描出内网数据库并写入xlsx中
这个专题主要是一些日常用到的Python程序,不定期更新~~ 环境要求: Python版本:Python 3.6 模块要求:ping3,socket,openpyxl 系统要求:Windows 10(
bsbforever
2020/08/19
9890
[Python程序]扫描出内网数据库并写入xlsx中
springboot实现文件上传到数据库_javaweb将数据写入数据库
该接口只负责接收前台上传的文件,和遍历打印Analysis工具类解析出的数据,可以略过不看
全栈程序员站长
2022/09/22
1.3K0
springboot实现文件上传到数据库_javaweb将数据写入数据库
KEGG数据库下载加速攻略!
在上周的文章KEGG数据库不会下载?了解下API!里,我介绍了基于KEGG API来获得所有基因的id,并通过wget遍历所有id来get基因的序列。对计算机比较了解或已经尝试过的朋友可能会意识到,虽然KEGG数据库整体并不是很大(原核生物大概5G),但是反复访问API地址耗时甚长!基于国内高校网速现状,全部下载可能需要长达数月甚至一年的时间!需要注意这里的耗时主要来源于反复访问KEGG API地址而不是下载数据本身,假如可以减少访问次数,那么就能大大缩短KEGG数据库下载时间。比较幸运的是,API指令中允许多个基因并行检索,如下所示:
SYSU星空
2022/05/05
3.3K0
KEGG数据库下载加速攻略!
最后写入胜利(丢弃并发写入)
实现最终收敛的一种方案,每个副本总存储最新值,允许覆盖并抛弃旧值。假定每个写请求都最终同步到所有副本,只要确定哪个写入是最新,则副本就能最终收敛到相同值。
JavaEdge
2022/08/01
2.4K0
最后写入胜利(丢弃并发写入)
VBA与数据库——写个类操作ADO_写入
添加数据:尝试过使用Recordset的Update功能,并不是所有数据库都支持,所以还是启用事物,逐条添加: '插入数据 Function InsertDB() As RetCode '选择数据源,检查标题 Dim rngsrc As Range If SelectDataAndCheckField(rngsrc) = ErrRT Then InsertDB = ErrRT Exit Function End If Dim srcAr
xyj
2022/04/26
1K0
Emlog文章页加入新的参数并写入数据库
给emlog博客程序加入新的字段,方法很简单的,不过有点复杂,如果弄不明白,建议你购买《Emlog发表时文章自定义参数插件》一键搞定,下面我们一步一步来实现手动加字段,首先在数据表emlog_blog中加入新的字段“sheli01”,参数中的“sheli01”可以自行修改,一定要统一,否则无效。
用户8099761
2023/05/10
2670
PyTorch使用LMDB数据库加速文件读取[通俗易懂]
文章https://blog.csdn.net/jyl1999xxxx/article/details/53942824中介绍了使用LMDB的原因:
全栈程序员站长
2022/11/11
2.9K0
BufferedWriter写入
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132801.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/14
8400
Spark jdbc postgresql数据库连接和写入操作源码解读
本文介绍了如何利用Spark JDBC驱动和PostgreSQL数据库进行数据存储,并实现Spark程序对PostgreSQL数据库的增删改查操作。通过一个简单的示例,展示了如何使用Spark SQL进行读取和写入操作,并介绍了Spark JDBC和PostgreSQL的连接配置方法。
王小雷
2018/01/02
3.4K0
Spark  jdbc postgresql数据库连接和写入操作源码解读
图片介质受写入保护_写入保护
最近使用U盘,突然不能正常使用了,在U盘内新建文件夹,提示“介质受写入保护”无法创建文件,赶紧网上查找解决办法。查找的结果比解释比较全面的就是:
全栈程序员站长
2022/11/17
6.3K0
图片介质受写入保护_写入保护
【最全】Python连接数据库取数与写入数据
取数后的分析结果若想定时发送给相关人员,可参考【干货】用Python每天定时发送监控邮件。
阿黎逸阳
2023/08/21
1K0
【最全】Python连接数据库取数与写入数据
Python+SQLite数据库实现服务端高并发写入
SQLite数据库同一时刻只允许单个线程写入,很多服务端程序会开很多线程,每个线程为一个客户端服务,如果有多个客户端同时发起写入请求,在服务端会因为某个线程尚未写入完成尚未解除对数据库的锁定而导致其他线程无法在限定的时间内完成写入操作而抛出异常,提示“database is locked”。
Python小屋屋主
2021/01/12
3.4K0
[Python程序]扫描出内网数据库并写入xlsx中(修正版)
昨天的推送后来发现有问题,由于将判断是否没有端口开放的变量opened放在for循环里面,这样每次都重置为0,从而导致每个IP都多出来一行no DBs found
bsbforever
2020/08/19
6970
[Python程序]扫描出内网数据库并写入xlsx中(修正版)
点击加载更多

相似问题

加速hashmap写入

11

如何加速在数据库中的写入?

117

加速写入CSV文件

18

关于加速JDBC写入的提示?

40

需要加速用实体框架将大型对象图写入数据库

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文