Recent Posts

PostgreSQL 无会话、有会话模式 - 客服平均响应速度(RT)实时计算实践(窗口查询流计算)

19 minute read

背景 通常客服系统可能存在一对多,多对多的情况。 例如, 我们在使用淘宝时,与店家交流时,你根本不知道后面的小二是一个人还是多个人共用一个账号,还有可能是多个人使用了多个账号但是对消费者只看到一个。 例如: 小二(n)账号 -> 统一对外账号 -> 消费者 还有的情况是一个小二为多个消费者服...

MySQL 不落地迁移、导入 PostgreSQL - 推荐 rds_dbsync

2 minute read

背景 将MySQL数据不落地的方式导入PostgreSQL。 1 rds_dbsync (推荐使用) 《MySQL准实时同步到PostgreSQL, Greenplum的方案之一 - rds_dbsync》 这个效率最高,支持不落地,支持流式导入,支持单表并发(通过配置文件,写WHERE条件,拆成多个并发导同...

PostgreSQL 恢复模式错误日志增强 - 提供正在恢复的WAL(XLOG)文件位置

1 minute read

背景 当数据库异常停库,再次启动时。又或者由于进程CRASH后自动重启时。需要进入恢复模式,恢复完成后,数据库才能正常交互。 在启动过程中,正在恢复时,如果此时连接数据库,会报错如下: the database system is starting up 用户只看这个信息,并不知道数据库还要启动多久,...

PostgreSQL 内容随机推荐系统开发实践 - 文章随机推荐

3 minute read

背景 内容推荐是蛮普遍的需求,例如论坛、电商、新闻客户端等。 比较简单的需求:编辑精选一些内容ID,生成推荐列表。(例如每天生成一个这样的推荐列表。)然后随机的推荐给用户(同时过滤已读的内容)。 更高级的推荐需求:应该是根据不同口味产生的,例如对会员本身进行画像,归类。服务端针对不同口味生成不同的推荐列表。定...

PostgreSQL PostGIS 空间数据约束使用

2 minute read

背景 空间数据有一定的规范,例如SRID的规范。空间类型geometry包罗万象,除了能存储POINT,还能存储多边形,线段等。 这就带来一个有意思的烦恼,当我们业务不够规范时,你可以往GEOMETRY里面存储任意SRID的数据,存储任意的空间对象。 1、SRID错乱,可能导致一些查询,索引问题。 2、本身...

PostgreSQL 当有多个索引可选时,优化器如何选择

11 minute read

背景 当一个表有很多索引时,并且一个QUERY可以使用到其中的多个索引时,数据库会如何做出选择?最终选择哪个,或者哪几个索引呢? 《PostgreSQL 多查询条件,多个索引的选择算法与问题诊断方法》 选择单个索引时,PATH可以选择index scan , index only scan, bitmap s...

PostgreSQL psql 绘制饼图

3 minute read

背景 图像相比文字是更容易被理解的东西,在BI可视化领域,经常会使用图像来代替数值,展示一些信息,例如柱状图、饼图、线图等。 AWR文字报告里面,如果多几个图像来代替列表,其实也是不错的。 那么SQL能直接画图吗,把一行行的结果,转换成图像。 例如 1、TOP SQL的总耗时占比饼图。 2、数据库对象类...

PostgreSQL 消息平台实践

less than 1 minute read

背景 一个多渠道消息平台的数据库设计。 业务规则 1、消息发送给最终用户,一则消息可以发送给多个社交软件平台(因为一个用户可能使用多个软件平台(比如旺旺,WEB版旺旺,淘宝。。。))。 使用数组存储 社交软件平台 2、一条消息在某社交软件平台已读,则该消息在其他社交软件平台也需要为已读。因为同一条...