SQLite 数据库在读取时写入

Posted

技术标签:

【中文标题】SQLite 数据库在读取时写入【英文标题】:SQLite Database written on read 【发布时间】:2016-04-15 13:56:46 【问题描述】:

我一直在玩 inotify 和 sqlite 数据库,因为我想知道数据库文件的写入频率。

问题是每次发送查询时都会写入数据库文件。无论是读取(SELECT)还是修改(UPDATE)都没有关系。此后,inotify 标志 IN_CLOSE_WRITE 总是被激活。

我想尽可能避免写作。我在这里错过了什么吗?数据库不应该只在执行修改操作时才写吗?

【问题讨论】:

【参考方案1】:

IN_CLOSE_WRITE 标志并不表示已写入内容,仅表示文件已打开以进行写入。

数据库不知道你以后是否会写东西,所以它以写权限打开文件以避免重新打开它。

如果您知道自己不想写,请使用 SQLITE_OPEN_READONLY 标志。

【讨论】:

感谢您的回答。我发现我用 SQLITE_OPEN_READWRITE 打开所有连接的问题,这就是为什么它总是打开写。你知道有什么机制可以知道文件是否确实被写入了吗? 您的意思是,您想知道inotify 是否有修改标志? 抱歉,我刚刚意识到我必须检查 IN_MODIFY 标志。它总是被触发两次。感谢您的帮助。

以上是关于SQLite 数据库在读取时写入的主要内容,如果未能解决你的问题,请参考以下文章

将图像读取和写入 SQLite DB 以供 iPhone 使用

dataframe to sqlite写入读取数据库

使用NPOI读取Excel数据并写入SQLite

UWP SQLite 错误:“尝试写入只读数据库” [重复]

从 SQLite 数据库中读取非 Unicode、非英文文本

使用 fmdb 写入 sqlite db?