我正在使用SQLite3作为反应原生https://github.com/craftzdog/react-native-sqlite-2
CREATE TABLE
IF NOT EXISTS projects (
id text PRIMARY KEY NOT NULL,
name text NOT NULL,
begin_date text,
end_date text
)WITHOUT ROWID;
我有大约10k行,想要使用以下查询选择100行
SELECT * FROM projects WHERE id IN ("id1","id2",...,"id100")
在android 7手机中配备8核cpu和8Gig RAM。查询大约需要2秒,但是当我在台式PC中运行同一数据库中的查询时,它只需要80毫秒
如何在android中进行优化?
我还删除了测试的WITHOUT ROWID
子句
import SQLite from 'react-native-sqlite-2';
const db = SQLite.openDatabase('test.db', '1.0', '', 1);
db.transaction(function (txn) {
txn.executeSql('SELECT * FROM projects WHERE id IN ("id1","id2",...,"id100")', [], function (tx, res) {
for (let i = 0; i < res.rows.length; ++i) {
console.log('item:', res.rows.item(i));
}
});
});
executeSql大约需要2秒(不包括开放式数据库和事务)