我想多次将记录插入表中,我可以选择使用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);
哪一个应该是最佳的?
编辑: - 我正在运行的应用程序是单线程的。
答案 0 :(得分:1)
insert()
在每次调用时编译SQL,而compileStatement()
方法只编译一次SQL。当多次使用具有不同绑定参数的相同SQL时,compileStatement()
方法会减少工作量并且速度更快。
此外,考虑将插入包装在事务中以减少等待I / O所花费的时间。
答案 1 :(得分:0)
理论上,编译语句更好,但在Android设备上,你不太可能处理这么多记录,差异很重要。 (如果你想确定,你必须自己衡量。)