1

SQLite を使用して、約 9Gb の大きなデータセットを ":memory:" データベースにロードしています。現在、.csv ファイルからデータをロードする python スクリプトがあります (行ごとに他の処理を行っています)。次に、2 つの大きなテーブルで結合を行う必要があります。データベースがメモリ内にある場合、参加している列のインデックスを作成すると違いが生じますか? もしそうなら、データをロードする前にインデックス付きのテーブルを作成するか、結合の直前にインデックスを構築する方が良いですか? 最後に、列の型を指定すると、速度に違いが生じるでしょうか?

4

1 に答える 1

1

インデックスが役に立ちます。テーブルのすべてのレコードを検索するのは、二分検索でインデックスを検索するよりも遅くなります。

データをロードする前にインデックスを作成すると、挿入されたレコードごとにインデックスを更新する必要があります。

SQLite では、型アフィニティを除いて、列の型は重要ではありません 。列の型を宣言しないと、正しい型を持つのと同じくらい速くなります。列に間違った型を宣言した場合にのみ、型変換の追加費用が発生します。

于 2012-09-29T14:16:30.213 に答える