首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >三星Galaxy GT-I9000的SQLite速度极慢

三星Galaxy GT-I9000的SQLite速度极慢
EN

Stack Overflow用户
提问于 2010-08-17 18:24:49
回答 4查看 4.9K关注 0票数 2

我在三星Galaxy GT-I9000设备的安卓应用程序中遇到了SQLite数据库的性能问题。数据库包含10个表,每个表有3-8列。

一旦数据库文件增加了大约400KB,update/instert查询需要更多的时间来执行-2秒!与其他设备(HTC Magic,HTC Desire)相比,更新/插入查询大约需要40毫秒!

数据库文件位于应用程序数据目录中。将数据库文件移动到SD卡可以显著提高速度。

定期的ANALYZE和VACUUM命令不会影响速度。以及PRAGMA cache_size命令。

你有什么想法可以提高性能吗?

任何想法都是受欢迎的,除了在SD卡中保持数据库或将数据库分成许多文件,每个文件包含一个表。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-18 03:35:26

使用事务和参数化查询。如果不使用参数化查询,Sqlite必须解析每条sql语句。所有这些不必要的解析使简单的insert语句慢2到3倍。查看此处:How do I get around the "'" problem in sqlite and c#?

使用事务也是非常重要的,因为Sqlite可以非常快地执行插入,但它的提交速度很慢,因此您必须将插入/更新和删除捆绑到一个大事务中。

票数 3
EN

Stack Overflow用户

发布于 2010-08-18 22:22:35

在三星Galaxy S上,访问内部SD卡的速度非常慢。有多种可用的inofficial lag fixes,似乎是三星的RFS文件系统导致了延迟。

希望三星将发布一个更新来解决这个问题,在此之前,如果可能的话,你最好的办法是避免I/O。

票数 4
EN

Stack Overflow用户

发布于 2010-08-17 18:54:13

Bulk insert命令应在事务内执行:

代码语言:javascript
运行
复制
BEGIN TRANSACTION;
// INSERTS
COMMIT;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3501451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档