根据目标群体的特征, 快速提取目标群体. 例如, 在电商行业中, 商家在搞运营活动前, 根据活动的目标群体的特征, 圈选出一批目标用户进行广告推送或活动条件的命中. 在游戏行业中, 运营经常会根据游戏玩家的某些特征圈选, 针对性的发放大礼包, 激活游戏活跃度. 在教育行业中, 根据学生不同的特征, 推送不同的有针对性的习题, 提升学生的弱项. 在搜索、门户、视频网站等业务中, 根据用户的关注热点, 近期行为的不同, 根据群体推送内容.
2020疫情无情,诸多企业因此受挫,特别中小企业,甚至到了要裁员的地步, 但是人才是最宝贵的,裁员一定是下下策,如何渡过这个难关,疫情带给我们什么反思? 开源节流有新方法,通常数据库在企业IT支出中的占比将近一半,降低数据库成本对降低企业IT成本效果明显,但是一般企业没有专业DBA,很难在这方面下手,不过没关系,有了云厂商,一切变得简单。借助阿里云我们找到了可以为企业IT节省至少一倍成本的方法.
本文详细讲解了把fillfactor参数调整到70%时,使用csd2000的透明压缩功能让实际占用空间很少增长的情况下(增长8%),让pgbench测试出来的性能提升近40%。同时使用了csd2000的透明压缩功能让空间占用率到达了原空间的六分之一,大大的节省了空间。
Oracle DBA都知道,绑定变量窥视功能是Oracle数据库的一个特性,自ORACLE9i版本开始引入,是可以通过参数数“_optim_peek_user_binds”来控制是否开启,默认是开启,即为TRUE。这就意味着,第一次以变量的方式执行某类SQL时,会生成第一个执行计划,后续执行该类SQL语句,即使变量的传入值不同,但因变量窥视的作用,依然会沿用第一次SQL语句执行时生成的执行计划,这种特性非常适用于业务表数据分布比较均匀的场景,执行计划比较稳定。但对于数据分布严重倾斜的业务表,可能会出现错误的执行计划,在极端情况下,会引发严重的性能问题。
本文介绍了PostgreSQL的Autovacuum机制中容易出现误解的地方,包括Autovacuum的调度机制、Autovacuum的监控以及相关的数据字典和数据库参数等。
版本号--V2.17 更新日期:2019-11-13
我们知道postgresql数据库通过数据多版本实现mvcc,pg又没有undo段,老版本的数据元组直接存放在数据页面中,这样带来的问题就是旧元组需要不断地进行清理以释放空间,这也是数据库膨胀的根本原因。本文简单介绍一下postgresql数据库的元组、页面的结构以及索引查找流程。
版本号--V2.17 更新日期:2019-11-13
TBase是一个提供写可靠性,多主节点数据同步的关系数据库集群平台。你可以将TBase配置一台或者 多台主机上,TBase数据存储在多台物理主机上面。数据表的存储有两种方式, 分别是distributed或者replicated ,当向TBase发送查询 SQL时,TBase会自动向数据节点发出查询语句并获取最终结果。
我们知道mysql没有hash join,也没有merge join,所以在连接的时候只有一种算法nest loop join,nl join使用驱动表的结果集作为外表到内表中查找每一条记录,如果有索引,就会走索引扫描,没有索引就会全表扫。
PostgreSQL 12,“世界上最先进的开源关系型数据库”的最新版本,如果没有其他问题,将在接下来的几周时间内正式发布。该项目每年新增大量新数据库功能,坦白地说,这一点非常令人惊讶。同时也是我参与PostgreSQL社区的主要原因之一。
PostgreSQL 的分区表个人认为是 PostgreSQL 比较薄弱的环节,老版本的分区表通过继承表和触发器实现,甚至需要逐个对子表进行索引创建,使用上不方便。 10 版本和 11 版本在分区表的功能上进行了大幅完善,但是当分区表分区数量较大时,分区表的DML性能并不好。 PostgreSQL 12 版本的分区表的性能得到了大辐提升,尤其当分区表的分区数量非常多时,DML 性能提升更加明显。
像微软的SQL Server,IBM的DB2,包括从11发行版本开始的PostgreSQL数据库,在创建索引的语句中都支持include子句。介绍PostgreSQL中的这个特性是我写这篇长文介绍include子句的主要目的。 在详细介绍之前,让我们先简单回顾下(非聚集)B树索引的工作原理以及强大的仅索引扫描(index-only scan)。
接前一篇文章,这里继续介绍在工作中遇到的一个死锁案例。经过对业务模型的抽取分析(后面会介绍表结构和数据,业务模型来源于开源组件的实际业务),模拟得到的死锁日志信息如下:
对于IP地址段查询的场景,PostgreSQL的ip4r插件是一个性能和通用性都比较不错的一个方案,但用户不一定方便使用ip4r,比如在未安装ip4r的公有云RDS上或者使用PostgreSQL以外的数据库
PostgreSQL 的 CTE( common table expressions ) 支持较复杂的查询,比如递归查询等场景, 12 版本之前 CTE 的 WITH 语句都是直接物化的,也就是说 WITH 语句执行一次并保持到一个类似的临时表中,供 WITH 语句外层的SQL引用,当 INSERT/UPDATE/DELETE 做CTE的 WITH 语句时是非常恰当的。
随着传感技术的发展,关系数据库的重要性不断增加。大型天气测量望远镜(LSST)每晚产生20TB,大型强子对撞机(LHC)每年产生30PB的数据。 Google和Facebook等社交网络公司每天都会收集大量人为生成的数据。
随着传感技术的发展,关系数据库的重要性不断增加。大型天气测量望远镜(LSST)每晚产生20TB,大型强子对撞机(LHC)每年产生30PB的数据。 Google和Facebook等社交网络公司每天都会收集大量人为生成的数据。
在最近的生产环境巡检中,发现一个死锁错误。从日志中看,触发死锁的是对表的相同行操作,最终分析和业务操作有关,不过其中涉及到Postgres数据库的外键更新加锁处理逻辑,下面对这个问题展开详细分析。
在学习完第一篇《Docker与PostgreSQL 11.5系列文章(一)Docker的安装》和第二篇《Docker与PostgreSQL 11.5系列文章(二)postgreSQL 11.5安装》之后,继续讨论容器的持久化。“持久化” 简单理解,就是容器被关闭后PostgreSQL数据库的数据是否还存在?