test luadbi's postgresql driver performance (vs pgbench)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:
测试机环境 : 
Lua 5.1.5
CentOS 5.7 x64
PostgreSQL 9.3.2
CPU
model name      : Intel(R) Xeon(R) CPU           E5440  @ 2.83GHz
stepping        : 6
cpu MHz         : 2833.435

Luadbi测试结果 : 
[root@db-172-16-3-33 luadbi]# taskset -c 2 /opt/lua5.1/bin/lua
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> require "DBI"
> dbh = assert(DBI.Connect('PostgreSQL', 'digoal', 'digoal', 'digoal', '/home/postgres/pg_root_5432', '5432')) 
> dbh:autocommit(true)
> insert = assert(dbh:prepare("select ?::int"))
> function foo(cnt) 
>>   local var1 = os.time()
>>   for i = 1,cnt do
>>     insert:execute(1)
>>   end
>>   return (os.time()-var1)
>> end
> print(foo(100000))
6
> print(foo(1000000))
61
> = 1000000/61.0;
16393.442622951


pgbench测试结果 : 
postgres@db-172-16-3-33-> vi test.sql
\set v 10
select :v::int;

postgres@db-172-16-3-33-> taskset -c 2 pgbench -M prepared -n -r -f ./test.sql -c 1 -j 1 -T 30 -U digoal digoal
transaction type: Custom query
scaling factor: 1
query mode: prepared
number of clients: 1
number of threads: 1
duration: 30 s
number of transactions actually processed: 561432
tps = 18713.732544 (including connections establishing)
tps = 18715.020715 (excluding connections establishing)
statement latencies in milliseconds:
        0.001098        \set v 10
        0.050809        select :v::int;


同一机器下面lua5.1+luapgsql的测试结果
root@db-172-16-3-33-> taskset -c 2 /opt/lua5.1/bin/lua
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> require "pgsql"
> conn = pgsql.connectdb('host=/home/postgres/pg_root_5432 port=5432 dbname=digoal user=digoal password=digoal')
> print(conn:errorMessage())

> conn:prepare('pre5','select $1',23)
> conn:execPrepared('pre5','10')
> function foo(cnt) 
>>   local var1 = os.time()
>>   for i = 1,cnt do
>>     conn:execPrepared('pre5','10')
>>   end
>>   return (os.time()-var1)
>> end
> print(foo(100000))
6
> print(foo(1000000))
55
> = 1000000/55.0
18181.818181818


使用Lua 5.1和luadbi连接postgresql进行测试, 相比pgbench损失性能12.4%.
从性能角度来讲, 建议使用luapgsql连接PostgreSQL.

[参考]
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
1月前
|
关系型数据库 MySQL 数据库
探究数据库开源协议:PostgreSQL vs MySQL
探究数据库开源协议:PostgreSQL vs MySQL
|
4月前
|
存储 关系型数据库 MySQL
【专栏】在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个
【4月更文挑战第27天】MySQL与PostgreSQL是两大主流开源数据库,各有特色。MySQL注重简单、便捷和高效,适合读操作密集场景,而PostgreSQL强调灵活、强大和兼容,擅长并发写入与复杂查询。MySQL支持多种存储引擎和查询缓存,PostgreSQL则具备扩展性、强事务支持和高可用特性。选择时应考虑项目需求、团队技能和预期收益。
76 2
|
4月前
|
关系型数据库 MySQL 数据处理
MySQL vs. PostgreSQL:选择适合你的开源数据库
在当今信息时代,开源数据库成为许多企业和开发者的首选。本文将比较两个主流的开源数据库——MySQL和PostgreSQL,分析它们的特点、优势和适用场景,以帮助读者做出明智的选择。
|
4月前
|
SQL 关系型数据库 测试技术
postgresql|数据库|数据库测试工具pgbench之使用
postgresql|数据库|数据库测试工具pgbench之使用
198 0
|
11月前
|
存储 关系型数据库 MySQL
如何选择最适合你的数据库解决方案:PostgreSQL VS MySQL 技术选型对比
如何选择最适合你的数据库解决方案:PostgreSQL VS MySQL 技术选型对比
288 1
|
存储 算法 Oracle
PostgreSQL的MVCC vs InnoDB的MVCC
PostgreSQL的MVCC vs InnoDB的MVCC
83 0
PostgreSQL的MVCC vs InnoDB的MVCC
|
存储 SQL 关系型数据库
【数据库选型】ClickHouse vs PostgreSQL vs TimescaleDB
在过去的一年里,我们不断听到的一个数据库是ClickHouse,这是一个由Yandex最初构建并开源的面向列的OLAP数据库。
|
Oracle 关系型数据库 MySQL
MySQL vs PostgreSQL干掉你的,往往不是你的对手
        今天突然看到一篇文章《方便面销量3年下降80亿包:干掉你的,往往不是你的对手》 ,结合之前MySQL和PostgreSQL的世纪大战,做为一个多年从事数据库行业研发的老司机,禁不住想说些什么。         谈到世纪之争,不如先看下上世纪没有云计算的时代,我们能听到的耳熟能详的经典数据库有
7149 0
|
Oracle 关系型数据库 数据库
|
Web App开发 SQL Oracle
PostgreSQL vs PPAS 差异 - Oracle评估、迁移、验证、性能调优
标签 PostgreSQL , PPAS , 阿里云 背景 1、ppas手册(高度兼容Oracle): https://www.enterprisedb.com/docs/en/11.0/EPAS_Oracompat_Ref_Guide_v11/toc.
1882 0