我有一个非常简单的 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
页面有时加载得快,有时加载得慢。有时,只有一半的表格填满,然后它只是旋转直到刷新。
谢谢!
最佳答案
table 有多大?你每秒处理多少个请求?
您可能希望创建一个索引,以便通过标记快速查找。现在,它必须扫描整个表以找到其标记与您的参数匹配的第一行。
CREATE INDEX IX_config_token ON config (token)
通常,查询表的每一种不同方式都可能受益于仅针对该查询的索引,因此在实践中,您通常最终会为每个表创建多个索引。
例如,如果我有
People
带有 City
的表和 FirstName
列等,我想满足这三个查询案例:然后我需要三个单独的索引:
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 市并拥有名字 Y 的人;它仍然比扫描整个表要好,但仍然不理想。
关于sqlite - 加快某些 SQLite 数据的加载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17353845/