如何使用python sqlite3包在python中的不同进程之间共享:memory:数据库

KKG

场景如下所示,我有很多进程要做 CPU 密集型工作并且只在同一个数据库上读取,我知道缓存和 uri 关键字可用于 sqlite 在线程之间共享数据库缓存,但是进程之间呢?最好同时适用于 linux 和 windows,谢谢!

def run(self):
    self.phyconn = apsw.Connection(self.fileName)
    self.memconn = apsw.Connection(":memory:")
    try:#backup.__exit__() just make sure copy if finished,not close backup,so with is good,memconn is still exist when out
        with self.memconn.backup("main", self.phyconn, "main") as backup:
            # call with 0 to get the total pages
            backup.step(0)
            total = backup.pagecount

            stepped = 0
            one_percent = total if total < 100 else total // 100
            last_percentage = 0
            while stepped <= total:
                if self.cancel:
                    #self.progressCanceled.emit()
                    self.memconn=None
                    return
                backup.step(one_percent)
                stepped = stepped + one_percent
                stepped_percentage = stepped*100//total
                if stepped_percentage != last_percentage:
                    last_percentage = stepped_percentage
                    #self.progressChanged.emit(stepped_percentage)
                    websocket.UpdateLoadDBProgress(stepped_percentage,self.sid)
CL。

这不可能。if 进程的全部意义在于将它们的内存彼此隔离。(大多数操作系统允许共享内存,但没有可移植的机制。)

即使有可能,它也不会更快,因为 SQLite 和操作系统都会缓存数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在python中的不同进程之间共享列表

如何使用python和sqlite3创建新数据库

Python3.x如何共享进程之间的数据库连接?

在python中,使用sqlite3时,数据库物理存储在哪里?

使用ʻexecutemany`更新现有SQLite3数据库中的条目(使用Python sqlite3)

使用python在sqlite3中附加数据库

如何使用Python通过SSH连接到Sqlite3数据库?

在python中的进程之间共享对象

在不同的python模块之间共享PonyORM的数据库会话

如何判断sqlite3数据库中是否存在值,python

如何用1行在python中创建sqlite3数据库

Python多处理:在进程之间共享数据

如何在python的进程之间共享数据?

如何在两个不同的进程之间通过python3中的指针地址共享数组?

如何使用python在sqlite3数据库中存储0.2值

Python:在不同进程之间传递值

使用Python将图像从sqlite3数据库显示到QTableWidget中的列

使用Python确定用户名是否在SQLite3数据库中

如何使用GUI Tkinter在Python中以特定格式显示来自数据库sqlite3的信息?

在Python中从sqlite3数据库写入CSV

如何在python中使用sqlite3创建数据库

Python数据库sqlite3

Python:使用 SQlite3 数据库中的数据在 Tkinter 中构建条形图

在 Python/SQLite3 中,如何定义用于查询数据库表的变量?

可以锁定sqlite3内存数据库以供python中的所有其他进程写入吗

我如何在 Python 中的 2 个不同进程之间共享串行端口

sqlite如何在不同进程之间同步页面缓存?

如何使用 Python 将日期时间插入到 sqlite3 数据库中?

如何在 Python 3 中的进程之间共享变量?