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

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

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

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

【问题讨论】:

    标签: sqlite inotify


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答。我发现我用 SQLITE_OPEN_READWRITE 打开所有连接的问题,这就是为什么它总是打开写。你知道有什么机制可以知道文件是否确实被写入了吗?
    • 您的意思是,您想知道inotify 是否有修改标志?
    • 抱歉,我刚刚意识到我必须检查 IN_MODIFY 标志。它总是被触发两次。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2015-10-27
    • 2014-12-06
    • 1970-01-01
    • 2010-11-04
    相关资源
    最近更新 更多