python ORM允许创建表和批量插入?

Posted

技术标签:

【中文标题】python ORM允许创建表和批量插入?【英文标题】:python ORM allowing for table creation and bulk inserting? 【发布时间】:2009-06-18 15:16:00 【问题描述】:

我正在寻找一个允许我进行批量插入以及基于 python 类创建代码的 ORM。我尝试了 sqlobject,它可以很好地创建表,但是对于我想要插入的数据量来说,插入速度慢得让人无法接受。如果这样的 ORM 不存在任何可以帮助处理诸如清理输入和构建 SQL 字符串之类的类的指针,我们将不胜感激。

【问题讨论】:

“批量”和“ORM”通常不会一起使用。取决于您所说的批量是什么意思,但是大多数人在想到批量时会想到原始 SQL,这使得 ORM 变得困难。你什么意思?你能给出你想做的代码示例吗? SQLObject 在创建时将每个对象插入到数据库中。我想一次插入很多对象,或者至少设置事务,这样每次插入都不会在进入下一个之前提交。 【参考方案1】:

你可能想试试SQLAlchemy。

【讨论】:

我们使用 SQLAlchemy,它适用于表创建和批量插入。根据数据库(和 DBAPI),SQLQAlchemy 有一个用于批量插入的 executemany(),请参阅 sqlalchemy.org/docs/05/…【参考方案2】:

我相信 sqlalchemy 有批量插入,但我从未使用过它。但是,根据this reviewer,它在基准测试中表现出色。

编辑:似乎不清楚他是如何使用 SQLAlchemy...无论是实际的 ORM 还是只是查询代码。阅读博客条目,我认为重点是使用 ORM,但一些评论者似乎认为他正在使用查询代码,如果是 ORM,它会慢得多。

【讨论】:

【参考方案3】:

我不熟悉 sqlobject,但对于批量插入,您通常希望确保这是在事务中完成的,因此您不必为每个操作提交。

在 sqlobject 中,您似乎可以通过使用事务对象来控制提交来做到这一点。您可能还需要关闭默认的 AutoCommit 标志才能正常运行。

http://www.sqlobject.org/SQLObject.html#id45

【讨论】:

以上是关于python ORM允许创建表和批量插入?的主要内容,如果未能解决你的问题,请参考以下文章

Django ORM 中的批量操作

使用 Django 的 ORM 加速批量插入?

MySQL创建函数和存储过程,批量插入大数据

PHP框架 Laravel Eloquent ORM 批量插入数据,怎么实现

PHP框架 Laravel Eloquent ORM 批量插入数据,怎么实现

增加批量插入方法