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 です

table at-least one row where status を調べる最速の方法は何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;

列にnull以外のフィールドが少なくとも1つ含まれているかどうかを確認するだけであれば、テーブル全体を調べる必要はありません。

于 2012-02-28T15:33:47.700 に答える