开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2370人左右 1 + 2 + 3 + 4 +5 + 6)5群480 已经停止申请,新人将进入6群
根据PolarDB for PG 宣称的一些特性
数据存储成本相较PostgreSQL RDS产品有30% -50%的存储成本的下降。
SQL的处理CPU消耗相较用户PostgreSQL RDS产品更稳定,消耗的CPU更少
内存使用率在运行类似的SQL语句相较与PostgreSQL 内存的使用率更低
针对PolarDB for PostgreSQL 提出的特性,其中PG原生数据库最大的问题之一是磁盘空间占用的问题,相对于其他的数据库产品PostgreSQL 数据库会在使用中占用更多的磁盘空间,这是人尽皆知的问题,其他的两个问题也需要进行测试,通过测试来验证PolarDB for PostgreSQL产品是否和宣传的比PostgreSQL RDS产品更具竞争力。
在此之前我也收到过一些DBA同学被公司的IT部的老板问及,为什么MySQL存储空间比PG要节省得问题,怎么回答这样的问题,从这里可以反应出成本是IT部门领导看中的问题。
解释问题,不如解决问题这里我们就根据PolarDB for PostgreSQL的资料来验证他们所宣传的是否属实,节省空间 50%,这里我们制定了简易的测试方案,通过两台同样配置的数据库产品进行POC,同时PolarDB 磁盘系统我们降级没有使用PolarDB 推荐的PLS5 ,而是使用了成本更低性能稍差的PLS4,RDS产品我们使用了默认的磁盘系统,最高IOPS为5万的产品PL1,从成本上考量这两个数据库的成本是雷同的。
1 台PolarDB 4C 16G 启动硬件压缩 PLS4
1 台PostgreSQL RDS 4C 16G PL1 5万IOPS
针对测试存储空间的部分,我们产生了7个表饱含了BIGINT ,INT ,FLOAT,JSON,TEXT ,VARCHAR,和具备所有这些字段的表,分别向表里面灌入数据,且观察注入数据以后,PolarDB for PostgreSQL 相对PostgreSQL RDS 是否可以节省成本。
testdb=> \d table_bigint
Table "public.table_bigint"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+------------------------------------------
id | integer | | not null | nextval('table_bigint_id_seq'::regclass)
data | bigint | | |
Indexes:
"table_bigint_pkey" PRIMARY KEY, btree (id)
testdb=> \d table_float
Table "public.table_float"
Column | Type | Collation | Nullable | Default
--------+------------------+-----------+----------+-----------------------------------------
id | integer | | not null | nextval('table_float_id_seq'::regclass)
data | double precision | | |
Indexes:
"table_float_pkey" PRIMARY KEY, btree (id)
testdb=> \d table_int
Table "public.table_int"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------------------------------------
id | integer | | not null | nextval('table_int_id_seq'::regclass)
data | integer | | |
Indexes:
"table_int_pkey" PRIMARY KEY, btree (id)
testdb=> \d table_varchar
Table "public.table_varchar"
Column | Type | Collation | Nullable | Def