android - query - using fts5




한 데이터베이스에서 다른 데이터베이스로 테이블을 빠르게 복사하는 방법 (2)

하나의 테이블과 다른 데이터베이스가있는 하나의 데이터베이스가 있습니다. 이 첫 번째 데이터베이스에서 첫 번째 데이터베이스 (간단한 테이블 사용)에서 두 번째 테이블로 복사해야합니다. (두 번째 데이터베이스에서는 fts3 테이블이어야합니다.) 따라서 두 데이터베이스를 모두 열고 두 번째 db에 새 fts3을 만들고 select -> insert 쿼리를 통해 첫 번째 데이터베이스에서 두 번째 데이터베이스로 모든 데이터를 복사 할 수 있습니다. 그러나 더 빠르고 더 잘할 수있는 다른 방법이 있습니까?


네, 그게 최선의 방법입니다. 테이블을 만든 다음 데이터를 삽입하십시오.

INSERT INTO `toDB`.`tableName` SELECT * FROM `fromDB`.`tableName` 

내가 아는 한 당신이 설명한 방법론 (즉, INSERT INTO db2.tbl SELECT * FROM db1.tbl )은 일반적으로 가장 효율적이어야합니다.

당신이 할 수있는 일은 sqlite를보다 빠르게 수정하는 것입니다. 가장 먼저 고려해야 할 사항은 저널링 을 사용하지 않도록 설정하는 것입니다 (일반적으로 위험하지만 여전히 원본 데이터를 유지하는 경우 시나리오에서 허용되어야 함).

pragma PRAGMA journal_mode=OFF:

synchronous 프라그마를 끌 수도 있습니다 (또한 위험합니다) :

PRAGMA synchronous=OFF;

차이를 만들 수있는 하나 또는 두 개 이상의 pragmas가 있습니다.하지만 언급 한 두 가지가 가장 큰 영향을 미칠 것입니다.

복사본 후에는 해당 pragma를 원래 값으로 복원해야합니다.







fts3