gpt4 book ai didi

sqlite - 是否有可以将选择查询输出为 SQL 插入命令的 SQLite 命令?

转载 作者:行者123 更新时间:2023-12-02 00:11:55 24 4
gpt4 key购买 nike

我正在使用 Zeoslib 通过 SQLite 创建内存数据库,我需要在程序关闭时将数据库保存到磁盘上或定期将其转储到文件中。

由于 SQLite3 程序无法在内存数据库中处理,有没有办法让 SQLite 将 SELECT 查询的输出导出为 INSERT 语句?

PS。 sqlite3 可以将内存数据库转储到磁盘,如该线程所示,但内存数据库是由不同的应用程序创建的,这就是为什么我看不到如何让示例工作的原因.

最佳答案

要将内存数据库保存到磁盘,请使用 SQLite 的 backup API 创建一个副本。这要求你的数据库驱动程序确实支持备份API; Zeos 显然没有。

<小时/>

磁盘上的数据库如此缓慢的原因不是磁盘访问本身(大多数可以缓存),而是同步以确保即使程序或计算机崩溃也能保持数据库完好无损。

有许多设置可以提高速度,但代价是使磁盘数据库与内存数据库一样不安全:

  • 设置PRAGMA synchronous关闭:

    With synchronous OFF (0), SQLite continues without syncing as soon as it has handed data off to the operating system. If the application running SQLite crashes, the data will be safe, but the database might become corrupted if the operating system crashes or the computer loses power before that data has been written to the disk surface. On the other hand, commits can be orders of magnitude faster with synchronous OFF.

  • 设置PRAGMA journal_mode到内存:

    The MEMORY journaling mode stores the rollback journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the database file will very likely go corrupt.

  • 增加PRAGMA cache_size (默认值通常仅为 2 MB);

  • 禁用PRAGMA secure_delete .

关于sqlite - 是否有可以将选择查询输出为 SQL 插入命令的 SQLite 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com