- 博客(68)
- 收藏
- 关注
原创 达梦分布式集群DPC_表设计_yxy
低效的分析查询: 执行 SELECT AVG(salary) FROM employees 这类查询时,需要读取整行数据(包含所有列),即使只关心 salary 一列,造成大量不必要的数据I/O。③更新可能导致行迁移: 行变长导致原位置空间不足时,行会被移动到新位置,原位置留下指向新位置的指针,增加后续访问的I/O。数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等。
2025-09-02 08:49:13
591
原创 达梦分布式集群DPC_分布式架构思想_yxy
本文分析了传统数据库架构的瓶颈问题,包括存储容量、磁盘IO和计算能力限制,并提出了分布式架构的解决方案。分布式架构通过数据分片、并行处理和负载均衡,显著提升了数据库的扩展性和性能。文章以达梦分布式集群为例,详细解析了不同SQL操作(如数学计算、排序和大表连接)在分布式环境下的执行过程和资源分配情况,强调理解SQL执行计划对优化分布式数据库性能的重要性。最后提供了数据库优化、达梦分布式和应用开发等专栏的扩展阅读链接。
2025-08-26 08:47:35
304
原创 达梦分布式集群DPC_故障分析_yxy
本文分析了达梦分布式集群DPC在不同节点故障场景下的表现。首先回顾了DPC基于Raft协议的核心机制,包括角色划分、日志复制流程和关键参数。接着详细描述了三种故障场景:1)主库故障时,副本通过选举机制重新选主的过程;2)少数备库故障不影响主库读写;3)多数节点故障导致服务不可用,包括仅剩一个备库时会持续选举失败,以及主库在多数备库故障时会转为只读模式。最后提供了数据库优化和达梦分布式数据库相关专栏的链接。全文通过具体日志和参数配置,展示了DPC集群的故障恢复机制。
2025-08-19 08:53:29
914
原创 达梦分布式集群DPC_RAFT协议_yxy
摘要:本文详细介绍了达梦分布式集群DPC中采用的RAFT协议,包括其核心概念、实现方式和故障处理机制。RAFT协议通过领导者选举、日志复制、日志提交和安全性保障确保分布式系统的高可用性和数据一致性。文章阐述了选举规则、日志复制流程、提交机制及安全特性,并针对备库和主库故障场景提出了解决方案。达梦DPC通过RAFT协议实现了多副本数据同步、自动故障切换和数据一致性保障,是分布式数据库高可用特性的关键技术支撑。
2025-08-12 11:31:35
637
原创 达梦分布式集群DPC_分布式任务执行拆分流程_yxy
本文介绍了达梦分布式集群(DPC)的任务拆分执行流程。DPC采用SP(计算节点)+MP(元数据节点)+BP(数据存储节点)的三层架构,通过将大任务拆分为多个子任务并行执行来提高性能。以单表查询为例,SP节点生成分布式执行计划,将任务分发到存储表数据的不同BP节点上执行,最后汇总结果返回给客户端。文章详细解析了任务拆分和执行的完整过程,包括执行计划生成、任务分发、并行执行和数据汇总等关键步骤,并提供了查看子任务执行情况的方法。
2025-08-05 10:03:29
655
原创 达梦分布式集群DPC_SQL执行流程_yxy
达梦分布式集群DPC的SQL执行流程采用计算-存储分离架构,由SP计算节点、MP元数据节点和BP存储节点协同完成。SP接收SQL请求后,经过语法检查、语义检查和计划缓存检查,未命中则进入优化器阶段进行查询改写、CBO代价计算和分布式计划生成,最终转换为可执行代码。执行时SP拆分计划并调度BP执行子任务,汇总结果返回客户端。该架构支持横向扩展,通过RAFT协议保障高可用,优化器考虑网络代价直接生成分布式最优计划,实现高效查询处理。
2025-07-29 08:54:58
842
原创 达梦数据库应用开发_监控工具DEM-短信接口实现_yxy
达梦数据库DEM监控工具短信接口实现主要包括DEM部署、接口框架解析和具体实现步骤。首先需部署DEM并配置自定义告警接口,通过实现INotify接口获取用户信息和告警内容。其次通过HTTP请求将数据提交至第三方短信平台,涉及POST请求构造、认证凭证配置等。具体实现需准备相关jar包,编写Java类实现接口功能,完成DEM配置后测试接口连通性,最终通过第三方接口标准实现短信发送功能。整个过程包括DEM接口对接和第三方平台集成两大核心环节。
2025-07-21 08:48:47
1005
原创 达梦分布式集群DPC_DPC线程深度解析_yxy
EXEC_ID 执行号,STASK_NO 子任务序号,THRD_NO 工作线程序号,THRD_ID 工作线程id , SESS_ID 会话号。通过DPC_STASK_THRD找出执行号的每个子任务和线程信息,可以找出关键线程并打印堆栈,方便后续进行问题定位。数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等。看每个子任务、每个线程的执行统计信息。目前已有专用线程池:SESS,ESESS,PTHD,NTSK,四个线程池均从底层公共线程池申请线程。
2025-07-14 11:42:08
806
原创 达梦分布式集群DPC_DPC内存深度解析_yxy
达梦分布式集群DPC内存管理解析 摘要:本文深入解析达梦分布式集群(DPC)的内存架构,重点介绍DPC独有的XBOX通信内存模块。DPC内存分为XBOX、全局内存池、缓冲区、哈希/排序区等核心模块。XBOX作为节点间通信的关键内存区域,用于SQL数据传输、RAFT日志同步等场景,其性能直接影响集群稳定性。文章详细剖析了XBOX的工作原理、监控视图(V$XBOX)及相关参数配置建议,包括限流参数(MPP_MOTION_SYNC)、内存阈值(XBOX_DUMP_THRESHOLD)等优化设置。同时提供了XBOX
2025-06-30 15:14:38
728
原创 达梦分布式集群DPC_分布式事务理解_yxy
DPC基于RAFT一致性协议实现多副本数据同步,每个BP组构成一个RAFT组(如3节点组),主库通过异步日志传输(XMAL模块)将Redo日志同步至备库,确保数据强一致。若BP1提交成功但BP2尚未提交,T2可能读到BP1已提交但BP2未提交的中间状态数据(如A扣款成功但B未到账),破坏事务隔离性(如“读未提交”)。数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等。两阶段提交SP(计算节点) 作为全局事务的协调者,统一处理全局事务。
2025-06-01 16:45:09
941
原创 达梦数据库多版本并发控制(MVCC)_yxy
达梦数据库通过多版本并发控制(MVCC)技术解决了高并发场景下的性能问题,确保数据一致性和隔离性的同时提升并发性能。MVCC通过数据版本化实现读写操作的隔离,避免了传统锁机制中的资源竞争和死锁问题。
2025-05-16 15:47:04
947
原创 达梦数据库锁理解_yxy
当事务 T1(事务号为 TID1)试图修改某行数据,而该行数据正在被另一个事务 T2(事务号为 TID2)修改,此时事务 T1 会生成一个新的 TID 锁,其锁对象为事务号 TID2,而非事务 T2。然后对同一行进行修改,则会出发TID锁(X锁),blocked=1,代表是上锁等待,锁对象为窗口1的事务号,这样,窗口2就知道该行数据正在被窗口1修改,需要等待窗口1完成修改后才能执行自己的修改操作。如表中第二行第二列为“Y”,表示如果某个事务已经加了 IS 锁时,其他事务还可以继续添加 IS 锁;
2025-04-27 11:05:54
1094
原创 数据库性能优化(sql优化)_分布式优化思路02_yxy
分布式数据库sql在有分组、排序、去重、过滤等操作符时,会涉及到先接收数据再做分组排序类操作,还是先本地排序分组后再接收数据的问题。当两个分区表连接时,如果分区方式不同(没利用上分区智能连接),肯定会涉及数据跨界点连接操作,这里就涉及到多种数据分发方式了。数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等。本地操作数据后,数据量可以大量减少,可以减少传输的数据量,从而减少跨节点或跨区域的网络传输,提升性能。①右表分发,保留左表数据分布特性;
2025-04-22 09:43:55
212
原创 数据库事务理解_yxy
事务的隔离级别介绍隔离级别 脏读 不可重复读 幻读 适用场景READ UNCOMMITTED ✔️ ✔️ ✔️ 统计类只读操作READ COMMITTED ✖️ ✔️ ✔️ 多数OLTP系统REPEATABLE READ ✖️ ✖️ ✔️ 金融核心交易SERIALIZABLE ✖️ ✖️ ✖️ 极高一致性要求的特殊场景注:不同数据库实现存在差异不可重复读和幻读的区别为:不可重复读重点为读取同一行数据,多次读取的结果不一致。
2025-04-21 16:26:56
615
原创 数据库性能优化(sql优化)_分布式优化思路01_yxy
发送操作符 ESEND 和接收操作符 ERECV为了在不同的实例之间或同一实例不同的线程之间进行数据交换ESEND 将孩子操作符的数据按照某种分发规则发送给特定 ERECV 操作符。ESEND 操作符发送的内容为当前子计划的执行结果,有时也会包含一些附加信息。ERECVERECV 操作符用于接收某个 ESEND 操作符的输出结果,并将接收的结果向上层操作符传递。例如--初始化表和数据COMMIT;--执行查询语句,并显示执行计划--分析。
2025-04-15 14:34:57
284
原创 数据库性能优化(sql优化)_子查询02_yxy
①需要注意主查询和子查询到底是执行一次还是多次(可按真实业务情况调整控制参数),子查询执行多次的情况下,一定要子查询效率够快,并且最好有索引;②注意在需要的列建立合理的索引,特别是需要执行多次的过滤列(例如非相关子查询中的TEST01.A = var2的A列);③读懂sql语义很重要,尝试进行连接方式和连接顺序的调整;下一篇:数据库性能优化(sql优化)_分布式优化思路01_yxy1.数据库优化。
2025-04-05 17:37:56
124
原创 达梦数据库应用开发_MyBatis-Plus框架介绍_yxy
MyBatis-Plus(简称 MP )是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2025-03-18 09:35:24
751
原创 数据库性能优化(sql优化)_多表连接02_yxy
连接主要往三个方面考虑①考虑连接顺序(小表驱动大表,小表构造hash表)例如:当超过 2 张表进行连接时,经过连接可以产生较小结果集的表优先处理。②考虑连接方式(HASH、嵌套循环、归并、半转内等)每个连接方式都有优缺点哈希连接需要构建哈希表,适用于未排序的数据,但可能会消耗大量内存。归并连接更适用于已排序的数据,避免了哈希表的内存开销,归并连接在处理大数据集的连接时,性能通常更好,前提是数据已经排序。
2025-03-14 15:58:15
117
原创 数据库性能优化(sql优化)_多表连接01_yxy
对于多张表的连接查询,数据库每次只能处理2表的连接,然后再和第3张表连接或者是另外一个连接结果做连接,表间连接顺序 和 连接方式的选择对性能影响特别大,所以重点讲下每个连接方式和优化的思路。
2025-03-08 16:13:31
170
原创 达梦数据库应用开发_Hibernate框架介绍_yxy
jdbc、hibernate、ibatis、mybatis、MyBatis-Plus、Spring、中间件mycat、Sharding-JDBC等。ORM是一种技术,它可以将对象模型和关系模型进行映射,使得开发人员可以使用面向对象的方式来操作数据库,而无需编写大量的 SQL 语句。部署详细步骤(DEM)、备份还原实战、核心特性理解、使用心得、表分区方式详细介绍、表分区最佳实践、DPC架构详解等。数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询等。
2025-02-20 14:48:56
974
原创 数据库性能优化(sql优化)_CBO原理02_yxy
多列谓词: card col1*(card col2/number rows)*(card col3/number rows)..........*(card coln/number rows)表连接: 连接选择性 * filtered cardinality(table1) * filtered cardinality(table2)连接选择性算法: ((num_rows(table1) - num_nulls(table1.col1)) / num_rows(table1)) *以
2025-02-14 10:08:25
66
原创 数据库性能优化(sql优化)_CBO原理01_yxy
CBO(Cost Based Optimizer):基于代价的优化器CBO是一种数据库查询优化技术,它通过估算不同可能的查询执行计划的成本来选择最佳的执行计划;这种优化方式依赖于数据库对象(如表和索引)的统计信息,包括行数、数据分布、索引选择性等,这些信息用于计算不同执行计划的成本;
2025-02-13 14:20:38
134
原创 达梦分布式集群DPC_架构详解_yxy
DMDPC 架构由三部分组成SP(SQL Processor):计算节点MP(Metadata Processor):元数据节点BP(Backend Processor):数据存储节点SP①对外提供分布式数据库服务,用户可以登录到任意一个 SP 节点,获得完整的数据库服务;②不存储数据,所以SP都是单机,可以横向扩展(多个SP节点),不能多副本;BP①负责存储表真实数据,一般是多副本;②执行 SP 的调度指令并将执行结果返回给 SP;MP。
2025-02-12 14:09:50
1588
6
原创 数据库性能优化(sql优化)_统计信息_yxy
数据库中同一个sql有非常多种执行方式,每种执行方式的代价肯定不同,统计信息描述了数据库对象(如表、索引等)的各种特征,包括但不限于表中的行数、列的不同值数量、数据的分布情况以及索引的选择性等。统计信息能使CBO(基于代价优化器)能基于具体数据来选择更好的执行计划;
2025-02-07 10:47:36
229
原创 数据库性能优化(sql优化)_SQL执行计划03_yxy
1.对于排序或者分组操作,理解B+树的底层存储结构都非常重要,排序或分组如果能利用上索引,那效率会提升很多;2.SAGR 可以处理持续不断的数据流,而 HAGR 更适合一次性处理完整的数据集合;3.HASH分组需注意哈希冲突、内存使用和数据分布等因素;
2025-01-31 14:57:25
454
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人