PostgreSQL 内存表
背景 在某些场景,要求快速的DML,并且对数据可靠性要求不是非常高。 例如游戏的会话信息,传感器上传的最新数据,运算的中间结果,等等。 例如在一个场景中,有非常多的传感器的数据要不断的被更新和查询,可以使用这种方法,每个传感器的ID哈希后分配给对应的会话,这个传感器。 上面的需求,PostgreSQL ...
背景 在某些场景,要求快速的DML,并且对数据可靠性要求不是非常高。 例如游戏的会话信息,传感器上传的最新数据,运算的中间结果,等等。 例如在一个场景中,有非常多的传感器的数据要不断的被更新和查询,可以使用这种方法,每个传感器的ID哈希后分配给对应的会话,这个传感器。 上面的需求,PostgreSQL ...
背景 CASE 一个这样的查询,每个表都只有几千条数据,但是查询非常慢,几十秒不出结果。 select distinct abc.pro_col1, abc.col3 from t0 p INNER JOIN t1 abc on p.id=abc.par_col2 ...
背景 如何评估QUERY的响应时间? 需要买什么样的硬件能满足为了业务XXX的需求? 这种问题在企业中非常常见,但是估计大多数是拍脑袋的回复,做得更好点,可能是根据业务的benchmark提供的数据,给一个拍脑袋的决定。 本文将针对数据库的QUERY展开,看看应该如何正确的评估QUERY的响应时间。 从执...
背景 在日常的生活中,我们可能会经常需要一些像相近、相仿、距离接近、性格接近等等类似这样的需求,对数据进行筛选。 这些需求PostgreSQL居然都支持,是不是很变态呢。 变态的例子 这些场景都支持索引排序和检索,否则怎么叫变态呢。 按长相相似度排序 比如最近的王宝强和马蓉的事件,估计很多人会拿宋喆的照片进...
背景 之前写过几篇 PostgreSQL 并行计算的文章,文中并没有仔细描述PostgreSQL是如何决策并行计算,以及并行度的。 开源数据库PostgreSQL攻克并行计算难题 https://yq.aliyun.com/articles/44655 PostgreSQL 并行计算 在 xf...
背景 前几天写了一篇关于旋转门的数据压缩算法在PostgreSQL中的实现,里面用到了PostGIS里面的ST_Azimuth函数用来计算夹角,其实在PostgreSQL 中,我们还可以使用三角函数,以及三边来求夹角。 https://yq.aliyun.com/articles/59101 文中用到的计...
背景 本文截取自《多核处理器下事务型数据库性能优化技术综述》 http://www.cnki.com.cn/Article/CJFDTotal-JSJX201509012.htm 数据库的redo记录了事务的重做信息,它最重要的功能之一是用来恢复数据库,例如当数据库crash后,需要从数据库的一致检查点开始,...
背景 按分组取出TOP值,是非常常见的业务需求。 比如提取每位歌手的下载量TOP 10的曲目、提取每个城市纳税前10的人或企业。 传统方法 传统的方法是使用窗口查询,PostgreSQL是支持窗口查询的。 例子 测试表和测试数据,生成10000个分组,1000万条记录。 postgres=# crea...
背景 PostgreSQL 的基于流复制的物理备库是基于redo的物理块复制备库,允许开放只读的功能,但是需要注意,由于主库可能不断的产生redo,这些redo可能会与备库的QUERY产生冲突。 什么情况下query会堵塞、或与恢复冲突? 当以下操作产生的REDO被复制到备库,并且备库准备拿这些REDO来恢复时...
背景 在创建逻辑卷时,可以指定逻辑卷的major和minor设备号。 [-M|--persistent {y|n}] [--major major] [--minor minor] -M, --persistent {y|n} Set to...