Android SQLite查询超级慢

时间:2015-01-07 14:02:54

标签: android sql performance sqlite cursor

我有一个包含一个表的数据库,其中有大约350.000行。当我尝试查询它时,我的Nexus4速度超慢。 cursor.moveToFirst()方法调用大约需要500毫秒。如果我使用sqlite3在终端上的同一个数据库上运行完全相同的查询,则大约需要10毫秒。所以我想我的Cursor没有使用我的索引...

String table = "table";

String[] columns = {
         "col1",
         "col2"
};

String predicate = "col1 like '?' and col2 = ?";

String[] values = {
         value1+"%%",
         value2
};

String orderBy = "col3 ASC";

String limit = "5";

Cursor c = this.mDatabase.query(table, columns, predicate, values, null, null, orderBy, limit);

if (c != null) {
  long start = System.currentTimeMillis();
  c.moveToFirst();
  long duration = System.currentTimeMillis() - start;
  // The duration here is super slow
  ....
}

数据库的索引位于col1col2。就像我说的......当在命令行执行sql时,它的速度非常快......在手机上大约10ms vs 500 ...

关于如何提高查询速度的任何想法?似乎索引没有被使用?!?

由于

0 个答案:

没有答案