私はInflux v1.3を使用しています。私は1ヶ月のタイムパンに〜2百万件のレコードと10個のタグを含む測定値を持っています。このうち、私はuser_id
とarticle_id
に興味があります。空ではないタグでInfluxDBレコードを選択すると非常に遅くなります
が空でない特定のuser_id
のイベントの数を抽出しようとしています。
ユーザーのすべてのイベントを選択するためのクエリが驚くほど速いです:
select count(*) from pageviews where user_id = '92363';
ユーザーと記事の特定のイベントのためのクエリは、驚くほど速いです:
select * from pageviews where user_id = '92363' and article_id = '879729';
しかし、私はのためにフィルタを追加しようとすると、空でない(または空)article_id
の場合、クエリは数十秒間実行されます。
select count(*) from pageviews where user_id = '92363' and article_id != '';
select count(*) from pageviews where user_id = '92363' and article_id !~ /.*/;
私が間違っていることや、データベース内で設定すべきことがありますか?これは正しいとは思わない。ユーザーのイベントの数は< 100です。私は文字通り、手作業でより速くそれらを通過しました。
現在、デフォルト設定が実行されています。
ありがとうございました。
ありがとうございます。私はそれがクエリを最適化し、フィルタリングされた〜100のイベントに対してタグをチェックすると期待しますが、おそらくSQLのdatabazeとは違った働きをします。ブール値の回避策は十分です。 1.4にはタグに使用できる 'SHOW CARDINALITY'が含まれていることが分かりましたので、私はそのオプションも紹介します。どうもありがとう! – rootpd