4006-998-758
3000+课程任你选择
GoldenDB、TDSQL国产分布式数据库技术原理、性能优化和案例实践
研发学院 分布式数据库技术原理 性能优化
胡国青

吉林大学计算机系毕业先后加入外企,互联网公司等。从事Oracle、MongoDB、MySQL、Hadoop、Redis等咨询、支持和培训工作。为大量银行/金融、电信行业、互联网、保险等客户提供支持和服务。曾任职惠普、快乐购-芒果TV等公司服务,主要负责DBA和技术架构工作。热衷于Oracle、MySQL、MongoDB、Redis、 Linux、Java、Python、shell等技术。
目前任职多家公司数据库技术顾问;负责SQL优化、DB培训、DB架构设计等相关工作。为几十家大型企业做过数据库培训。
擅长数据库架构、问题诊断和性能调优以及web诊断、大数据管理等。
2014年,考取Oracle OCM
2016年,加入MongoDB核心社区,从事课件书写和技术分享
2018年,研究NewSQL,并应用到线上使用

查看老师详情
课程内容


课程大纲


1、讲义:GoldenD、TDSQL国产分布式数据库技术原理、性能优化和案例实践

 

业务应用如何做数据库选型(实践开端)

1. 金融业务场景针对数据库选型策略(分布式数据库功能对比)

2. 垂直拆分和横向分片式拆分的选择考虑因素,重点讲解分片键选择以及编写代码注意实现

3. GoldenDB、TDSQL体系架构(从架构中着重明白运维体系、SQL访问路由路径等)

4. RC隔离级别和RR隔离级别在业务中使用实践,重点讲解数据一致性保障

优化实践技术分解(根据银行千万级、亿级订单数据查询效率优化方案(落地性 + 分层设计 + SQL实战 + 全栈国产化基础设施))

1. 数据库规范核心-针对业务实践我们应该要注意关键建议

2. 选择合适的数据类型存储数据--以实际案例讲解

3. 数据表优化

1) 核心数据表设计

2) 乐观锁实现机制

3) SQL 层面保证扣库存原子性

4) 数据库悲观锁(适用于低并发 / 库存精准度要求极高场景)

5) 数据库乐观锁(适用于中低并发 / 库存更新频繁场景) 

6) 缓存 + 数据库的数据一致性保障 

7) 分层拦截 + 分布式锁(适用于高并发秒杀 / 超热点商品场景)

4. 优化大表必要性

5. 限制DML操作的数据大小

6. 优化注意细节

1) SQL优化分析       

2) 优化嵌套查询

3) 分页优化案例      

4) SQL语句执行慢真假刨析

5) 连接无法自动释放

6) 查询偶尔比较慢

7) 并发DML+DDL造成死锁

7. 选择合适的数据类型存储数据

8. 数据表优化

1) 核心数据表设计(为什么选择45列是比较合适的)

2) 字段类型设计

3) 对表逻辑更新

4) 添加创建和修改时间列

5) 乐观锁还是悲观锁,选择依据是什么

6) 如何查找慢查询:为什么会对业务造成危害

7) 优化大表总要性:多大是最优的

8) 为什么不要使用text/blob/json

9) 为什么要限制DML操作的数据大小

9. 处理海量数据时的一些优化查询速度方法

10. 数据库的高级特性,该特性在实际生产中的作用

11. 索引

1) 索引的类型和选型

2) 索引对DML的影响

3) 索引分区

4) 索引失效的原因

12. 性能分析工具集

1) 数据库基本性能诊断优化工具的使用

13. 数据库垂直拆分分析

14. 数据库水平切分分析

1) 非分片键字段查询如何实现

2) 跨库分页方案

3) 跨节点Join查询

15. 执行计划深度刨铣

(1) 嵌套循环

(2) 合并连接

(3) 哈希连接

(4) SQL调优方法论-执行计划深度分析

(5) 读懂执行计划关键

16. SQL优化实践方式

1) 数据库优化方法论

2) Explain解读

3) Trace信息

4) 分布式更新操作原理

5) 通用处理模型:跨节点分布式查询优化

6) 逻辑优化、条件下推、隔离

7) 引擎如何优雅处理海量SQL逻辑

8) 业务ID排序在业务中注意实现

9) 分布式事务实现

10) 全链路性能调优实战

11) 业务模型优化

12) SQL优化-分区方式优化

13) 热点SQL优化(根据业务场景优化热点瓶颈问题分析)

14) 跨机SQL优化

15) 子查询和or优化

16) SQL优化案例(分布式数据库多表关联导致查询效率较低如何解决)

17) 日常监控方法指标和故障排查

17. 分布式数据库两地三中心架构设计(同步、异步、一主几从最佳实践)

18. 根因定位:生产实例压力过大时,如何快速定位原因、如何提前发现性能风险

19. 读写分离的注意事项

20. 并发控制和锁的实现方式

1) 理解分布式数据库并发机制

2) 隔离级别对分布式数据库影响

3) 减少锁的竞争,优化事务的粒度

4) 乐观锁实现策略(那些场景使用)

21. 优化SQL查询语句

1) 选择合适的连接类型

2) 避免使用子查询、改用连接Join(那些场景下)

3) 避免使用复杂的查询(多表关联性能为什么差)

4) 索引技术:应用场景以及对业务数据查询的影响

5) 索引类型和工作原理

6) 分析索引覆盖

7) 避免过度索引

8) 定期维护索引

22. SQL性能问题定位以及性能问题来源

1) 用户SQL写法 - 遵循开发规约

2) 代价模型缺陷 - 执行计划

3) 统计信息不准确

4) 数据库物理设计:决定查询性能

5) 系统负载:影响整体吞吐率,影响单sql rt

6) 客户端路由 - 远程执行

23. SQL调优方法

1) 针对单条 SQL 执行的性能调优

2) 单表访问场景:索引、排序或聚合、分区、分布式并行

3) 多表访问场景:连接顺序、连接算法、分布式并行、 查询改写

4) 针对吞吐量的性能优化

5) 优化慢SQL

24. 均衡SQL的请求流量资源

25. 服务器性能(CPU/IO/内存/NUMA,针对ARM、C86服务器中NUMA和JDK版本结合优化)

26. 网络性能

27. 参数配置

案例:SQL索引的检查与失效情景解析(字符集-类型转换导致全表扫描)

案例:避免长事务

案例:分页查询

案例:乐观锁-悲观锁

案例:全表查询的影响-线程池影响(索引和IN优化)

案例:索引覆盖、索引下推、单表大小说明、碎片优化

案例:死锁问题分析

案例:优化器选错索引

GoldenDB、TDSQL对比分析以及和不同点

1. 架构设计的不同点

2. 原理实现机制

3. 分布式事务

4. 分布式事务读一致

5. 分布式事务写一致

6. 锁实现

7. 分布式死锁检测

8. 分布式死锁解除

9. 时间等动态函数数值全局一致

10. 分片字段有关的唯一约束

11. 分片字段无关的唯一约束

12. 异构索引精确定位查询范围

13. 全局序列单调递增

14. 分片键按业务需要的自定义

15. 按业务需要的数据分片设计智能优化

16. 表对象分片键在线变更

17. 表对象分片类型在线变更

18. SELECT多表关联

19. UPDATE多表关联

20. DELETE多表关联

21. SSL连接加密国标密钥算法

22. 数据库误操作快速恢复

23. 危险SQL拦截

24. 表结构和表索引优化推荐

25. 同城双数据中心灾备/双活一键切换

 

2、提问:每天预留1个小时

通过培训,大家互动提问,如何避免线上问题

 


返回上一级