SQLite を使用して、約 9Gb の大きなデータセットを ":memory:" データベースにロードしています。現在、.csv ファイルからデータをロードする python スクリプトがあります (行ごとに他の処理を行っています)。次に、2 つの大きなテーブルで結合を行う必要があります。データベースがメモリ内にある場合、参加している列のインデックスを作成すると違いが生じますか? もしそうなら、データをロードする前にインデックス付きのテーブルを作成するか、結合の直前にインデックスを構築する方が良いですか? 最後に、列の型を指定すると、速度に違いが生じるでしょうか?
質問する
1025 次
1 に答える
1
インデックスが役に立ちます。テーブルのすべてのレコードを検索するのは、二分検索でインデックスを検索するよりも遅くなります。
データをロードする前にインデックスを作成すると、挿入されたレコードごとにインデックスを更新する必要があります。
SQLite では、型アフィニティを除いて、列の型は重要ではありません 。列の型を宣言しないと、正しい型を持つのと同じくらい速くなります。列に間違った型を宣言した場合にのみ、型変換の追加費用が発生します。
于 2012-09-29T14:16:30.213 に答える