如何快速从android中的sql获取数千个数据

时间:2017-06-27 10:18:12

标签: android sql sqlite

我正在尝试从sql获取50.000个数据,但这需要超过15分钟。如何提高性能并获得少于5分钟的50k数据

while ((items = api.ws_getItems(ITEM_THRESHOLD, lastId, lastDate)).size() > 0)
        {
            db.beginTransactionNonExclusive();
            for (Item i : items)
            {
                i.save(db);
                ++curr;
                saving(msg, curr, numOfItems,mContext,mProgress);
            }
            db.setTransactionSuccessful();
            db.endTransaction();
            lastId = items.get(items.size() - 1).getId();
            lastDate =items.get(items.size()-1).getLastSync();

            if (items.size() < ITEM_THRESHOLD)
                break;
        }
 /**
 * saves current Item in database
 * @param db database instance
 */

public void save(SQLiteDatabase db) {
        if(db.update(TABLE_NAME, getContentValues(), COL_CODE + "=?", new String[]{code})==0){
            db.insert(TABLE_NAME, COL_BARCODE, getContentValues());
        }
}

1 个答案:

答案 0 :(得分:-3)

我建议使用Realm数据库 它快速,简单,更多功能

https://realm.io/products/realm-mobile-database/