2

1 つのテーブルと別のデータベースを持つ 1 つのデータベースがあります。この 1 つのテーブルを最初のデータベース (単純なテーブルを含む) から 2 番目のデータベースにコピーする必要があります。(2 番目のデータベースでは、fts3 テーブルである必要があります)。したがって、両方のデータベースを開き、2 番目のデータベースに新しい fts3 を作成し、select -> insert クエリを介して最初のデータベースから 2 番目のデータベースにすべてのデータをコピーできます。しかし、それをより速く、より良くする他の方法はありますか?

4

2 に答える 2

5

私の知る限り、あなたが説明した方法論 (すなわちINSERT INTO db2.tbl SELECT * FROM db1.tbl) は一般的に最も効率的です。

あなたができることは、それをより速く行うためにsqliteを微調整することです。最初に頭に浮かぶのは、ジャーナリングを無効にすることです(通常は危険ですが、元のデータがまだ残っているため、シナリオでは許容できるはずです)。

pragma PRAGMA journal_mode=OFF:

synchronousプラグマをオフにすることもできます(これも危険です):

PRAGMA synchronous=OFF;

違いを生むプラグマが他にも 1 つまたは 2 つありますが、私が言及した 2 つが最も大きな影響を与えると思います。

コピー後、これらのプラグマを必ず元の値に戻してください。

于 2012-04-29T10:42:02.213 に答える
3

そうです、それが最善の方法です。テーブルを作成し、データを挿入します。

INSERT INTO `toDB`.`tableName` SELECT * FROM `fromDB`.`tableName` 
于 2012-04-29T10:38:13.037 に答える