gpt4 book ai didi

python - 将插入合并到一个事务中 Python SQLite3

转载 作者:IT王子 更新时间:2023-10-29 06:22:45 25 4
gpt4 key购买 nike

我正在尝试使用插入在 SQLite3 上输入 1000 行,但是插入所需的时间太长了。我听说如果将插入合并到一个事务中,速度会大大提高。但是,我似乎无法让 SQlite3 跳过检查文件是否写入硬盘。

这是一个示例:

if repeat != 'y':
c.execute('INSERT INTO Hand (number, word) VALUES (null, ?)', [wordin[wordnum]])
print wordin[wordnum]

data.commit()

这就是我一开始所拥有的。

data = connect('databasenew')
data.isolation_level = None
c = data.cursor()
c.execute('begin')

然而,这似乎并没有什么不同。一种提高插入速度的方法将不胜感激。

最佳答案

根据 Sqlite 文档,BEGIN 事务应该以 COMMIT 结束

Transactions can be started manually using the BEGIN command. Such transactions usually persist until the next COMMIT or ROLLBACK command. But a transaction will also ROLLBACK if the database is closed or if an error occurs and the ROLLBACK conflict resolution algorithm is specified. See the documentation on the ON CONFLICT clause for additional information about the ROLLBACK conflict resolution algorithm.

所以,你的代码应该是这样的:

data = connect('databasenew')
data.isolation_level = None
c = data.cursor()
c.execute('begin')

if repeat != 'y':
c.execute('INSERT INTO Hand (number, word) VALUES (null,?)', [wordin[wordnum]])
print wordin[wordnum]

data.commit()

c.execute('commit')

关于python - 将插入合并到一个事务中 Python SQLite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5055314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com