数据库

citus 系列6 - count(distinct xx) 加速 (use 估值插件 hll|hyperloglo

背景在分布式数据库中,计算count(distinct xxx),需要对distinct 的字段,1、去重,2、重分布去重后的数据,(这一步,如果distinct值特别多,那么就会比较耗时)3、然后再去重,4、最后count (xxx),5、求所有节点的count SUM。例如,以下是Greenplum的执行计划例子postgres=# explain analyze 

digoal
PostgreSQL
2018-10-09 14:57

PostgreSQL pgsocket: Extension for Simple TCP/IP Socket Client

背景PostgreSQL 插件,向外部tpc/ip socket服务发生字节流。pgsocket is an extension for PostgreSQL server to send bytes to remote TCP/IP socket server.For the first version only single function provided for one way data

digoal
PostgreSQL
2018-10-09 14:56

PostgreSQL GUI pgadmin4 v3.3 支持 gis geometry 数据编辑、显示

背景pgadmin 4 v3.3 开始支持geometry 类型的展示。https://www.postgresql.org/ftp/pgadmin/pgadmin4/v3.3/windows/如果geometry使用的是SRID 4326 (WGS 84 lon/lat)坐标系,则pgadmin会自动从OpenStreetMap 加载图层,作为背景。如果使用的是其他坐标系,则没有背景。pgadm

digoal
PostgreSQL
2018-10-09 14:54

PostgreSQL 11 tpcc 测试(103万tpmC on ECS) - use sysbench-tpcc by Percona-Lab

背景环境阿里云虚拟机[root@pg11-test ~]# lscpu   Architecture:          x86_64   CPU op-mode(s):   &n

digoal
PostgreSQL
2018-10-09 14:50

PostgreSQL 大版本升级方法之一 - 不落地并行导出导入

背景尽量快的大版本升级的方法。一、9.4以下版本,使用pg_dump并行导出,pg_restore并行导入,迁移(导出使用源版本pg_dump,导入使用目标版本pg_restore。如果是ppas请使用enterprisedb对应版本。)1、(源库)全局元数据(用户、表空间)导出需要superuser权限(如果你没有这个权限,跳过此步,但是务必在执行下一步时,人为在目标实例中创建所有与对象权限相关

digoal
PostgreSQL
2018-10-09 14:48

PostgreSQL 块级 snapshot (flash back) - postgrespro improvement

背景Postgrepro提供了一个snapshot fs的功能,允许用户对数据库状态打快照,并可以在将来迅速的闪回到某个过去的快照。这个功能是通过数据库page级COW来实现的,类似ZFS文件系统的快照功能,在PostgreSQL 内核层面实现了。snapshot fs与逻辑flashback query是不一样的,flashback query实际上用的是TUPLE级别的UNDO或未回收的旧版本

digoal
PostgreSQL
2018-10-09 14:46

PostgreSQL cheat functions - (内存上下文\planner内容等常用函数)

背景https://github.com/MasaoFujii/pg_cheat_funcsFujii Masao   MasaoFujii   PostgreSQL committer, DBA at NTT DATA, maybe good husband&nb

digoal
PostgreSQL
2018-10-09 14:45

PostgreSQL 任意字段数组合 AND\OR 条件,指定返回结果条数,构造测试数据算法举例

背景在进行一些实际的POC测试时,需要根据业务提出的需求构造数据,比如按照任意字段数组合 AND\OR 条件,指定返回结果条数,构造测试数据。需求表记录数A表字段数B1、N个字段等值OR,命中M条记录(两个条件无法同时满足)2、X个字段等值AND,命中Y条记录字段取值空间如何计算?构造算法1、N个字段等值OR,命中M条记录单个字段单个VALUE的记录数 = M/N单个字段取值个数 =&n

digoal
PostgreSQL
2018-10-09 14:41

PostgreSQL sharding : citus 系列5 - worker节点网络优化

背景citus 节点间的网络需求:1、cn节点访问所有worker节点。oltp业务的访问较频繁。2、重分布数据时,worker节点间相互访问。访问频度不大,OLAP业务常见,一旦有可能数据交换吞吐较大。citus的cn节点连worker节点为有两种模式,一种为事务级保持连接模式(每条SQL发起时建立连接,SQL结束后释放连接(除非在事务中,否则SQL结束立即释放连接)。),另一种为会话级保持连接

digoal
PostgreSQL
2018-10-09 14:39

citus 系列4 - DDL 操作规范 (新增DB,TABLE,SCHEMA,UDF,OP,用户等)

背景citus是PG的一个插件,插件主要针对普通SQL(非UTILITY)加HOOK进行了一些ROUTE处理,同时使用UDF对表进行新建分区的操作。如果用户如果要执行DDL,那么CITUS无法接管,应该如何操作呢?分两种情况,一种需要在所有节点(CN以及WORKER)执行,还有一些只需要在CN节点执行。需要在所有节点(CN以及WORKER)执行的DDL由于这些DDL在CN节点执行时,不会自动在WO

digoal
PostgreSQL
2018-10-09 14:33

对齐JOIN字段类型,使用数组代替字符串,降低字符串处理开销,列存降低扫描开销

背景Greenplum通常被用作OLAP,在一些用户使用过程中,可能因为数据结构设计,SQL问题等原因导致性能不佳,虽然通过增加节点可以解决问题,但是如果能优化的话,可以节约不少硬件资源。例如1、对齐JOIN字段类型。如果等值JOIN的字段类型不一致,无法使用HASH JOIN。2、对齐where条件字段类型。同上,无法使用HASH JOIN,或者索引扫描。3、使用数组代替字符串,降低字符串处理开

digoal
PostgreSQL
2018-10-09 14:31

Greenplum 优化CASE

背景Greenplum通常被用作OLAP,在一些用户使用过程中,可能因为数据结构设计,SQL问题等原因导致性能不佳,虽然通过增加节点可以解决问题,但是如果能优化的话,可以节约不少硬件资源。例如1、对齐JOIN字段类型。如果等值JOIN的字段类型不一致,无法使用HASH JOIN。2、对齐where条件字段类型。同上,无法使用HASH JOIN,或者索引扫描。3、使用数组代替字符串,降低字符串处理开

digoal
PostgreSQL
2018-10-09 14:24

相似图像搜索插件 imgsmlr 性能测试与优化 3 - citus 8机128shard (4亿图像)

背景续《PostgreSQL 11 相似图像搜索插件 imgsmlr 性能测试 1 - 单机单表 (4亿图像)》《PostgreSQL 11 相似图像搜索插件 imgsmlr 性能测试 2 - 单机分区表 (dblink 异步调用并行) (4亿图像)》《PostgreSQL sharding : citus 系列1 - 多机部署(含OLTP(TPC-B)测试)》citus (8节点, 128 sh

digoal
PostgreSQL
2018-10-09 14:21

proxysql安装和使用小记

proxysql安装和使用小记

chenfeng
MySQL
2018-10-09 14:14

相似图像搜索插件 imgsmlr 性能测试与优化 2 - 单机分区表

使用分区表+dblink异步接口并行调用。(内核层面直接支持imgsmlr gist index scan并行更好)

digoal
PostgreSQL
2018-10-09 14:14