《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(5)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(5)

《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(4) https://developer.aliyun.com/article/1228543?groupCode=polardbforpg



PolarDB-X在混合负载场景下主要有两个方案。其一为采用Lambda架构,技术上使用ETL进行数据同步;其二为TiDB等一套数据库提供HTAP的能力。

 

image.png

 

PolarDB-X也为混合负载架构,将TP流量路由至主实例,AP流量路由至只读实例。再结合LogIndex+TSO,即可在HTAP架构下提供强一致性读的能力。

 

我们基于只读实例提供了物理隔离,确保TP和AP流量不会相互干扰。除此之外,还提供了通过cost智能识别工作负载的能力,业务无需识别TP和AP流量,可进行智能判断,减少业务负担。

 

image.png

 

我们在混合负载场景下做了测试。

 

首先,开启TPC-C的流量,如果将HTAP能力关闭再运行TPC-H,会发现TPC-H会对TPC-C流量造成较大影响。而开启了HTAP能力之后,可实现TPC-H和TPC-C的物理隔离,很好地满足了TP和AP的稳定性。

 

image.png

 

PolarDB-X提供了基于代价的选择执行模型。可以通过explain cost指令查看每条SQL估算出来的workload是TP还是AP。如果是个简单的点查,则会基于cost判断其为TP,如果是agg等复杂查询,则会基于cost判断其为AP。

 

另外,我们提供了explain physical用于查看AP和TP的执行模式。

 

image.png

 

进行简单查询,然后执行explain cost。可以看到cost会从4个维度进行判断,分别为net、IO、memory、CPU。

 

image.png

 

查看本次查询的执行模式,显示为TP_LOCAL,表示本次查询为单机TP的执行模式。

 

如果构造一个复杂查询,对两个亿级别的大表先做join,再做count distinct,两个join的条件不对齐,因此join不下推。在HTAP场景下,得益于MPP查询加速,相对于此前的TP_LOCAL会有3-4倍的性能提升。

 

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
24天前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
13天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
14天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
16天前
|
SQL Java 数据库
Spring Boot与Flyway:数据库版本控制的自动化实践
【10月更文挑战第19天】 在软件开发中,数据库的版本控制是一个至关重要的环节,它确保了数据库结构的一致性和项目的顺利迭代。Spring Boot结合Flyway提供了一种自动化的数据库版本控制解决方案,极大地简化了数据库迁移管理。本文将详细介绍如何使用Spring Boot和Flyway实现数据库版本的自动化控制。
16 2
|
30天前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
50 11
|
29天前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
6天前
|
关系型数据库 分布式数据库 数据库
锦鲤附体 | PolarDB数据库创新设计赛,好礼不停!
锦鲤附体 | PolarDB数据库创新设计赛,好礼不停!
|
30天前
|
Rust 前端开发 关系型数据库
Tauri 开发实践 — Tauri 集成本地数据库
本文介绍了在 Tauri 框架中集成本地数据库的几种方案,包括直接绑定 SQLite、使用第三方数据库库和使用 tauri-plugin-sql-api 插件。最终选择了 tauri-plugin-sql-api,因为它集成简单、支持多种数据库类型,并且与 Tauri 框架深度整合,提升了开发效率和安全性。文章详细介绍了如何安装和使用该插件,以及如何编写核心代码实现数据库操作。
129 2
|
6月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB-X源码解读:分布式事务处理机制揭秘
【5月更文挑战第20天】PolarDB-X,PolarDB家族的一员,专注于大规模分布式事务处理,采用2PC协议保证ACID特性。源码解析揭示其通过预提交、一致性快照隔离和乐观锁优化事务性能,以及利用事务日志进行故障恢复。深入理解其事务处理机制对开发者掌握分布式数据库核心技术至关重要。随着开源社区的发展,更多优化方案将涌现,助力构建更强大的分布式数据库系统。
219 6
|
4月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB产品使用问题之如何基于Docker进行PolarDB-X单机模拟部署
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之如何基于Docker进行PolarDB-X单机模拟部署

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB
  • 下一篇
    无影云桌面