0

我有 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?我可以创建一些索引或其他可以用来计算 Not NULL 字段的东西吗?

我写了以下查询

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

但它需要 3 毫秒到 50 毫秒。这次我想进一步优化。我怎样才能做到这一点 ?

4

1 回答 1

1

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

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

如果您只是检查列是否包含至少一个非空字段,则不需要遍历整个表。

于 2012-02-28T15:33:47.700 回答