为什么数据库操作在通过网络连接的计算机上比在主计算机上花费的时间长 10 倍?我怎样才能让它更快?

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

背景:

使用 python 3.9.

我有两台运行 Windows 10 家庭版的笔记本电脑。其中之一是代码存储和共享到网络的地方。另一个通过 Wifi 连接到网络(请询问是否还不够详细,有点新)。除了我遇到的问题,代码在任何一台计算机上都运行良好。

我有一段代码遍历 csv,对于 csv 中的每个元素,我将它插入到 SQLite 数据库中,全部使用 python。代码、数据库和 csv 都存储在主(主机?)计算机上。

问题:

当我在存储它的机器上运行代码时,它非常快,当我在通过网络连接的机器上运行它时,它明显更慢。我使用时间模块来检查代码中发生减速的位置,并了解到每当调用插入函数将值存储在数据库中时,它似乎就会发生。使用时间模块我还了解到它在网络连接的笔记本电脑上慢了大约 10 倍。

为什么会这样?每次访问数据库时,笔记本电脑是否都必须通过网络?如果是这样,有什么办法可以避免这种情况吗?改为制作本地数据库文件,然后将其复制回适当的目录?那行得通吗?有没有更简单的方法来做到这一点,或者更适合这种情况的方法(即网络设置)?最好将其保留为可以在任何一台机器上运行的代码副本(这就是我首先这样做的原因)。

Lmk 如果代码有帮助,它只是有点多而且分散,不确定哪些部分是相关的。

这是我为sqlite数据库做的类中的insert函数:

def insert(self, <rest of parameters>):
            self.cur.execute(<sqlite insert statement>)
            self.conn.commit()

编辑:写完所有这些后不久,我发现如果我每次插入时都不“提交”,而是在迭代结束时才这样做,那么两台机器上的速度基本相同。 Idk 如果这足以解决问题,因为我真的不知道这样做的含义,所以我会保持这个问题开放,直到知道更好的人说不同......

database sqlite network-programming python-3.9
© www.soinside.com 2019 - 2024. All rights reserved.