在sqlite中找到非空字段的最快方法

时间:2012-02-28 15:28:45

标签: sql sqlite isnull

我有sqlite表

CREATE TABLE IF NOT EXISTS [app_status](
[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ,
[status] TEXT DEFAULT NULL
) 

此表有多个记录,如

1 "success"
2 NULL

其中NULL是sqlite NULL

找出表格至少是一行状态IS NOT NULL的最快方法是什么? 我可以创建一些索引或其他可以用来计算非空字段的东西吗?

我写了以下查询

SELECT 1 \
FROM [app_status]\
WHERE [status] IS NOT NULL

但需要3毫秒到50毫秒。我想进一步优化这个时间。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

在该列上添加索引(如果它还没有索引)和/或限制您的选择。

select 1 from [app_status] where [status] is not null limit 1;

如果您只是检查列是否包含至少一个非空字段,则无需浏览整个表。