把数据从一个数据库追加导入到另一个数据库

错误姿势

这种方法每次INSERT都要打开关闭一次数据库,会耗费大量的I/O

  1. sqlite3 old.db .dump | grep INSERT | sqlite3 new.db

正确姿势

开启事务,只打开关闭一次数据库,数据量大时速度会提高超级多!

  1. (
  2. echo 'PRAGMA foreign_keys=OFF;'
  3. echo 'BEGIN TRANSACTION;'
  4. sqlite3 old.db .dump | grep INSERT
  5. echo 'COMMIT;'
  6. ) | sqlite3 new.db