【发布时间】:2016-06-15 23:03:49
【问题描述】:
首先,我创建一个包含 5 列的表:
CREATE TABLE table1
(
a integer,
b character varying,
c character varying,
d numeric,
e numeric
)
其次,我在一个表中添加 100k 行
https://gist.github.com/ericsalim/1d12628826195b52c5d282c2326f5e00
第三,我使用 Psycopg2 和 SQLAlchemy 选择所有行
- 使用 Psycopg2:https://gist.github.com/ericsalim/f45d0f0d4babf0e59708c75804eb78c4
- 使用 SQLAlchemy:https://gist.github.com/ericsalim/c8df8adeb9ec49fa8cb1b5c5e8d811f8
Psycopg2 的结果
- 查询时间:2839.46800232
- 转换时间:792.379140854
- 分辨率大小:400036
- 行列表大小:412232
SQLAlchemy 的结果:
- 查询时间:2401.74889565
- 转换时间:377.213001251
- 分辨率大小:412232
- 行列表大小:412232
SQLAlchemy 是 Psycopg2 上的 ORM 层,它怎么可能比 Psycopg2 本身更快?我的代码有问题吗?
【问题讨论】:
-
这里不用ORM,代码一样,只是用另一种方式连接DB。尝试使用python profilers,也许你会发现问题。
标签: python postgresql sqlalchemy psycopg2