android db.insert 参数,android中的compileStatement或db.insert

在单线程应用中,对于多次执行相同SQL插入不同数据的情况,使用`compileStatement`预编译SQL并绑定参数可以提高效率,因为它减少了每次插入时的编译开销。同时,建议在事务中执行这些插入操作以优化I/O性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想多次将记录插入表中,我可以选择使用compileStatement或使用db.insert,如下所示.

String TABLENAME = "table"; //fields in table: id, name

SQLiteStatement statement = db.compileStatement("INSERT INTO "+TABLENAME+" VALUES(?,?);");

statement.bindLong(1,666);

statement.bindString(2,"john");

statement.executeInsert();

要么

String TABLENAME = "table";

ContentValues values = new ContentValues();

values.put("id", 666);

values.put("name", "john");

db.insert(TABLENAME, null, values);

哪一个应该是最佳的?

编辑:-

我正在运行的应用程序是单线程的.

解决方法:

insert()在每次调用时编译SQL,而compileStatement()方法只编译一次SQL.当多次使用具有不同绑定参数的相同SQL时,compileStatement()方法执行的工作更少,速度更快.

此外,考虑在事务中包装插入以减少等待I / O所花费的时间.

标签:android,android-sqlite,sqlite3,query-optimization

来源: https://codeday.me/bug/20190708/1405832.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值