Android中的数据库

时间:2011-06-28 14:58:17

标签: android

我需要提高此查询的速度,它需要太长时间(16992毫秒)并且SQLite管理员使它更快

public Cursor getContacts(String search)
    {

        Cursor c;

        String[]columns = {Constants.USER_NAME,Constants.PHONE_NUMBER};        
        String Limit = "0,20";
        String query = search != null ? Constants.USER_NAME + " LIKE '" + search + "%' " : "";

        c = myDataBase.query(Constants.TABLE_NAME,columns, query, null, null, null, null, Limit);

        return c;
    }

2 个答案:

答案 0 :(得分:1)

根据数据库的大小,LIKE - 语句需要一些时间。

形成您的方法名称我想您正在实施搜索您的应用程序?有一个很好的教程如何做到这一点:Link。这也包括如何加快搜索速度。

答案 1 :(得分:0)

在大型数据库中,

LIKE语句在SQLite中非常密集,特别是对于大字符串。

你可以尝试快速技巧并关闭编译指示以查看它是否加快了速度。如果数据库不断更新,请不要这样做,因为它可能会干扰原子性。如果它是一个静态DB,这是非常好的。加速我的大量查询和插入至少两倍,但他们没有使用like。我很想知道这会如何影响你的速度。

rawQuery('PRAGMA synchronous = OFF');