aiosqlite 模块在 Python 中如何工作?

问题描述 投票:0回答:0

我对异步编程有基本的了解,但我无法概念化使用 aiosqlite 时如何在单线程环境中优化 I/O 操作。具体来说,我正在努力理解异步查询和插入表如何提高性能。

在使用sqlite3的传统同步编程中,我可以理解I/O优化的好处,但我不确定aiosqlite是如何异步实现这种效率的。当查询涉及表搜索和异步内容插入时,有人可以提供有关 aiosqlite 如何设法优化 I/O 操作的见解吗?

此外,如果在使用 aiosqlite 以最大化其性能时我应该注意任何特定的策略、技术或模式,我将非常感谢您的指导。感谢您的协助!

我看了下面的代码:https://github.com/omnilib/aiosqlite/blob/40442815b1a9a67b6f458fe56a1f4717c6f6c74c/aiosqlite/core.py#LL111C5-L111C5

async def _execute(self, fn, *args, **kwargs):
        """Queue a function with the given arguments for execution."""
        if not self._running or not self._connection:
            raise ValueError("Connection closed")

        function = partial(fn, *args, **kwargs)
        future = asyncio.get_event_loop().create_future()

        self._tx.put_nowait((future, function))

        return await future

例如,我不明白

self._tx.put_nowait((future, function))
真正做了什么。

python python-3.x sqlite asynchronous aiosqlite
© www.soinside.com 2019 - 2024. All rights reserved.