sqlite查询600条数据就慢??

jzq123 2013-03-26 05:05:16
我用sqlite查询了600条数据就很慢,预计要5秒左右,有这么慢嘛?还是我代码有问题?
请高手指点这个应该怎么写呀???


@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS vcard" +
"(name VARCHAR PRIMARY KEY , info TEXT)");
}


public Map<String, String> queryAllCard(){
this.db = getReadableDatabase();
Map<String, String> map = new HashMap<String, String>();
Cursor c = db.query("card", null, null, null, null, null, null);

try {
while (c.moveToNext()) {
String name = c.getString(c.getColumnIndex("name"));
String info = c.getString(c.getColumnIndex("info"));
map.put(name, info);
}
c.close();
} catch (Exception e) {
e.printStackTrace();
}

return map;
}
...全文
281 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn_2013 2013-03-27
  • 打赏
  • 举报
回复
引用 楼主 jzq123 的回复:
本帖最后由 jzq123 于 2013-03-26 17:06:31 编辑我用sqlite查询了600条数据就很慢,预计要5秒左右,有这么慢嘛?还是我代码有问题? 请高手指点这个应该怎么写呀??? @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS vc……
至于慢的原因 有很多 也可能是自身设备读写能力很差导致 另外: LZ代码规范有问题 先判别cursor是否为null 在cursor.moveToFirst() 在执行LZ的 并且在cursor.close()方法 最好在Finall里面处理
  • 打赏
  • 举报
回复
不应该的,我查4000条,真机上都只有一两秒。sqlite的查询速度,是要比其他重量级的高的
gnimgnot 2013-03-26
  • 打赏
  • 举报
回复
做索引了吗?

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧