【问题标题】:sqlite3 for multiple processes? how does other process gets effected after a huge update in data?sqlite3 用于多个进程?数据大量更新后,其他过程如何影响?
【发布时间】:2018-03-24 13:16:52
【问题描述】:

我正在尝试使用 sqlite3 和 node.js 作为阅读器和 one c 进程作为编写器。

根据我在http://www.sqlite.org/faq.html#q5 中阅读的内容,我了解到我可以将 sqlite3 与多个进程或多个读取进程和一个写入进程一起使用。还提到 sqlite3 是 fopen(而不是 Oracle)的替代品。

当进程更新数据库时我想知道什么。
1。它是否通知其他进程数据库已更新?
2. 如果我的 writer 进程每小时加载 100MB 数据并删除 100MB 数据,那么 sqlite3 是一个不错的选择吗?
3.关于#2,其他进程是否需要重新加载文件或内存缓存?它甚至使用一些缓存机制吗? 其他进程是否知道更新了哪些数据?
4.如果我合并读写器进程会有帮助吗? [为此,我必须使用套接字从写入服务器中提取信息,以便添加一个套接字连接]。

PS: 也许,这个问题与信息如何存储在数据库文件中更相关?信息更新或删除后,如何处理?

【问题讨论】:

    标签: sqlite


    【解决方案1】:
    1. 没有
    2. 100Mb 可能是边界线。我会考虑真正的数据库 像 PostgreSQL
    3. 其他进程将需要查询数据以查看 如果您有多个写入过程,则更改 sqlite 可能不是 不错的选择
    4. 如果将来您将运行进程 不同的机器 sqlite 绝对不是一个好的选择。

    【讨论】:

    • 感谢您的快速回复。仍然存在一个疑问,sqlite 是否使用缓存或类似的东西,因此只有一个读写进程会比一个读取器和一个写入器更有效
    • sqlite 你让每个进程读取一个文件并使用文件锁定来同步访问。该文件可能在操作系统级别缓存。文件锁定很难做到正确。 Sqlite 以其严格的测试而闻名,所以很可能他们做得对,但我不会赌上我的性命。
    猜你喜欢
    • 2016-02-22
    • 2017-05-10
    • 1970-01-01
    • 2013-02-21
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    相关资源
    最近更新 更多