慢SQLite - 如何提升表现?

时间:2017-10-25 16:38:28

标签: android sqlite android-sqlite

我正在使用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秒(不包括开放式数据库和事务)

0 个答案:

没有答案