这是 Proboscis[1] 的首次发布公告,Proboscis 是一个基于 PQueue 的 Green
Trunk 实现。它是一个用于 Python 的 PostgreSQL 驱动/接口。又一个
吗?是的,也不是。Proboscis 不是基于 libpq 的,它也不主要
提供 DB-API 2.0 接口(0.2 版本可能会为 DB-API 2.0 用户提供一个层)。
发布新闻项可以在这里找到[2]。
这个前端的特性,排名不分先后,包括:
* 纯 Python
* Green Trunk 接口
* 线程安全
* Windows 支持
* 基本 SSL 支持
* COPY TO/FROM 支持
* 协议级别的准备语句和游标(Portals)
* 按需的游标活动
* query 和 procedure 方法(参见 Green Trunk 文档)
* bytea 透明化(提示:使用参数时无需转义)
* Wire Tap(异步通知)
* 自动客户端编码/解码
在此下载[3]。
纯 Python?那一定很慢,对吧?首先,有一个可选的 C
扩展模块,可以在一个敏感的区域提供优化,所以它不一定
是纯 Python。随着 1.0 版本的临近,其他敏感区域也可能会
得到优化。
那么它到底有多慢或多快?以下是一些简单的测试
(服务器和客户端在同一台机器上)
Copying,
COPY FROM 摘要,
复制的元组数:50000
复制的字节数:2882981
时长:2.186987
平均元组大小(字节):57.000000
每秒平均 KB:1287.159045
每秒平均元组数:22862.505244
COPY TO 摘要,
复制的元组数:50000
时长:2.299819
每秒平均 KB:1224.009372
每秒平均元组数:21740.841414
(警告:没有 C 扩展模块,COPY TO 的 TPS 将减半)
Querying,
INSERT 摘要,
插入的元组数:1000
总时间:1.903957
每秒平均元组数:525.221976
(注意:批量 INSERT 在 0.2 版本中可能会快 2-3 倍)
SELECT 摘要,
循环次数:51
读取的元组数:1000
循环耗时:0.323199
读取元组耗时:0.322262
循环开销:0.000937
每秒平均元组数:3103.064739
(警告:没有 C 扩展模块,SELECT 将损失 1000 TPS)
虽然这些速度在实际应用中不太可能达到,但这确实给了
人们一个关于这个接口处理简单数据能力的初步印象。
要最快上手,请参阅快速入门页面的前端部分[4]。
获取更多帮助,请注册并向邮件列表提问[5]。
邮件列表[5]。
[1] http://python.projects.postgresql.org/project/fe.html
[2] http://pgfoundry.org/forum/forum.php?forum_id=522
[3] http://pgfoundry.org/frs/?group_id=1000094&release_id=315
[4] http://python.projects.postgresql.org/quick.html
[5] http://lists.pgfoundry.org/mailman/listinfo/python-general
本文已从先前版本的 PostgreSQL 网站迁移。对于迁移过程中可能出现的任何格式问题,我们深表歉意。