几个技巧:
- 将插入/更新放入事务中。
- 对于较旧的SQLite版本,请考虑使用较少偏执的日记模式(pragma journal_mode)。有NORMAL,然后有OFF,如果您不太担心数据库可能因操作系统崩溃而损坏,则可以显着提高插入速度。如果您的应用程序崩溃了,数据应该没问题。请注意,在较新的版本中,OFF/MEMORY设置对于应用程序级崩溃不安全。
- 播放页面大小也会有所不同(PRAGMA page_size)。由于较大的页面保留在内存中,因此具有较大的页面大小可以使读取和写入的速度更快。请注意,更多的内存将用于您的数据库。
- 如果您有索引,请CREATE INDEX在完成所有插入操作后考虑调用。这比创建索引然后进行插入要快得多。
- 如果您可以并发访问SQLite,则必须非常小心,因为写入完成后整个数据库将被锁定,尽管可能有多个读取器,但写入将被锁定。通过在较新的SQLite版本中添加WAL,对此进行了一些改进。
- 利用节省空间的优势…较小的数据库运行速度更快。例如,如果您有键值对,请尝试将键设置为a(INTEGER PRIMARY KEY如果可能),它将替换表中隐含的唯一行号列。
- 如果使用多个线程,则可以尝试使用共享页面缓存,这将允许在线程之间共享已加载的页面,从而避免了昂贵的I / O调用。
- 不要使用!feof(file)!



