加快某些SQLite数据的加载时间

时间:2013-06-27 21:52:36

标签: sqlite

我有一个非常简单的sqlite表:

CREATE TABLE config (id INTEGER primary key, 
                     token VARCHAR(255),
                     value TEXT,
                     date DATETIME)

有时当网页抓取信息时,它会旋转和旋转,但不是所有时间。其他页面,静态,在此服务器上快速加载。

我一直在研究索引数据。这是加速查询的最佳方式还是我应该做一些不同的事情?这可能是服务器问题吗?如果是这样,我该怎么弄清楚?

编辑:

我得到的数据是这样的:

SELECT value 
                  FROM config 
                  WHERE token='%s' 
                  ORDER BY id DESC
                  LIMIT 1

页面有时加载速度快,有时速度慢。有时,只有一半的表填充然后它只是旋转直到刷新。

谢谢!

1 个答案:

答案 0 :(得分:0)

桌子有多大?你有多少次请求它?

您可能想要创建一个索引,以便快速查找令牌。现在,它必须扫描整个表以找到其令牌与您的参数匹配的第一行。

 CREATE INDEX IX_config_token ON config (token)

通常,查询表的每种不同方式都可能会受益于该查询的索引,因此实际上每个表最终会有多个索引。

例如,如果我有一个People表,其中包含CityFirstName列,并且我想要满足这三个查询案例:

  1. 选择所有居住在City X
  2. 的人
  3. 选择所有拥有FirstName Y
  4. 的人
  5. 选择所有居住在City X并拥有FirstName Y
  6. 的人

    然后我需要三个单独的索引:

    CREATE INDEX IX_People_City ON People (City)
    CREATE INDEX IX_People_FirstName ON People (FirstName)
    CREATE INDEX IX_People_City_FirstName ON People (City, FirstName)
    

    如果我没有第三个索引,那么查询案例#3将使用第一个索引来查找所有居住在城市X中的人,然后必须手动扫描以找到居住在城市X中的人并拥有FirstName Y;它仍然比扫描整个桌子更好,但它仍然不理想。