首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >executemany()是如何工作的

executemany()是如何工作的
EN

Stack Overflow用户
提问于 2014-08-21 13:36:01
回答 2查看 2.3K关注 0票数 1

我一直在使用c++,并与sqlite一起工作。在python中,我在库中有一个executemany操作,但是我使用的c++库没有这个操作。

我想知道executemany操作如何优化查询,使其更快。

我看了sqlite /c++ api,发现有两个命令,sqlite3_reset和sqlite3_clear_bindings,可以用来清除和重用准备好的语句。

这就是python对批处理和加速executemany查询(至少是对插入)所做的操作吗?耽误您时间,实在对不起。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-21 13:51:21

executemany只是在一个循环中绑定参数、执行语句并调用sqlite3_reset

Python不允许您在语句准备好之后直接访问它,因此这是重用它的唯一方法。然而,SQLite并不需要很多时间来准备语句,因此这不太可能对性能产生很大影响。

性能最重要的事情是对事务中的语句进行批处理;Python试图变得聪明和自动完成此操作 (独立于executemany)。

票数 2
EN

Stack Overflow用户

发布于 2014-10-10 13:26:21

我查看了一些相关的帖子,发现了关于如何提高sqlite批量插入性能的详细的折页。这些原则可以有效地用于创建executemany函数。

提高SQLite的每秒插入性能?

最大的改善变化确实是@CL。他说,把这一切都变成了一笔交易。另一篇文章的作者还发现,通过使用和重用已准备好的语句,以及使用一些语用设置,有了很大的改进。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25427769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档