sqliteの使用には制限があると理解していますが、このシナリオを処理できるかどうかを知りたいと思います。多くの行(3億+)のテーブルでcount(*)を使用するクエリのパフォーマンス
私のテーブルには3億以上のレコードがあり、dbは約12ギガバイトです。 sqliteのデータインポートユーティリティはすばらしく高速です。しかし、この表の文字列にインデックスを追加し、この操作を完了するために一晩中実行しました。私はこれを他のデータベースと比較していませんが、私にとってはかなり遅いようです。
インデックスが追加されたので、データの重複を探したいと思っています。だから私は "0>クエリを持っている"を実行しようとしているし、それも時間がかかるようです。私のクエリは次のようになります。
select col1, count(*)
from table1
group by col1
having count(*) > 1
私はこのクエリは、col1の上で私のインデックスを使用すると仮定しますが、スロークエリの実行は、それがない場合、私は思ってしまいますか?
おそらくSQL Serverはこのようなことをよりうまく処理できますか?
あなたがチェックしようとしたが、[計画を説明](http://www.sqlite.org/ eqp.html)を使ってインデックスが使用されているかどうかを確認します。とにかく、12GIGはデータだけであり、インデックスはGIGを追加する必要があります。私は理論的な限界(http://www.sqlite.org/limits.html)は140のTERAsですが、SQLiteが他の選択肢と比較してうまく機能することはあまりにも多いかもしれないと思います。 – bpgergo
実際に私は言及するのを忘れていた、ファイルは基本的にインデックスの後にサイズが倍増 - 12GBから24GBへ –
私は説明を実行して、お礼を参照してください –