2 つの sqlite データベース A と B があり、どちらも 1,000 万行以上で構成されています。タスクは、B のすべてのレコードを読み取り、それらの新しいレコードがまだ A に存在しない場合はそれらを A に追加することです。
A には重複はありませんが、B には多数の重複があります。
A と B の両方が約 100 万行しかないときから、これはトリッキーな仕事であることがわかりました。
list_from_A = read all rows into a list from database A
list_from_B = read all rows into a list from database B
no_dupe_list = list(set(list_from_A) - set(list_from_B))
append no_dupe_list into database A
現在、これら 2 つのデータベースは大きすぎてすべてをメモリに読み込むことができないため、これを行っているときに常に MemoryError に遭遇しました。実際、これが発生したときに使用されるメモリは 2G だけですが、私の win 7 64 ビットには合計で 16G の RAM があるため、ところで、Python がこれを最大限に活用できるようにするためのアイデアはありますか?
とにかく、基本的に私は仕事をするためにデータベースBをいくつかの部分に分割する必要があります.Bにはすでに多くの重複があり、データベースAと比較するたびに処理される異なる部分に分割されるため、これはより効果的ではありません. 、これを行うためのより速い方法はありますか?