教学方式
讲授和案例讨论相结合[可灵活选择想学习以及客户定制的课程]
目标:
①如何让公司网站/APP流畅,提高用户体验
②如何让业务并发处理用户请求更快,更准确,提高接口响应时间
③如何让数据库更稳健和优化的为上层业务服务提供支撑
④成本收益--同样的机器承载更多的访问量
MySQL性能优化
①MySQL优化学习开端
②MySQL索引
③MySQL索引业务案例
④MySQL事务--在业务中的应用
⑤优化事务效率
⑥MySQL锁--在业务中的应用
⑦MySQL优化总结
⑧优化案例分解
课程大纲
MySQL体系结构(理论) | 1.MySQL体系架构概述 2.新特性 3.锁 4.事务 5.针对不同的MySQL模式或架构SQL的编写和业务处理数据注意点 6.MySQL使用RC隔离级别和RR隔离级别? |
MySQL架构 | 1. MySQL主从复制原理 2. MySQL高可用复制与分布式架构 |
MGR在生产中实践 | 1.MySQL group Replication架构介绍 2.集群架构 ØMySQL group Replication多主模式项目在生产中应用 ØMySQL group Replication单主模式项目在生产中应用 3.集群数据同步 4.集群管理 5.状态监控 6.使用限制 MGR提升阶段 1.流量控制 2.冲突检测 3.性能分析 MGR实践阶段 1.应用场景 2.重要参数 3.高可用架构 ØMySQL MGR+HAProxy配置负载均衡 ØMySQL MGR+KeepAlived配置负载均衡 4.优化思路 5.MGR在线修改Single-Maste为Multi-Master模式 6.将MGR降级为主从模式 7.MySQL group Replication启动和停止操作<注意事项> 8.MySQL group Replication在线增加/删除节点 9.MySQL group replication节点宕机恢复实践 10.MGR版本升级 11.在业务中的体现--踩到的坑 ØMySQL MGR在业务中使用添加/删除表和字段注意事项 Ø大事务 Ø网络抖动 Ø双主DML+DDL同时执行一个表 Ø事务的认证流程的加锁起了冲突,导致事务性能下降,延迟提升 Øpaxos cache导致内存增长优化 Ø提前查找大查询和大事务思路 12. MySQL MGR 8.0在生产中实践 |
数据库规范核心 | 1. 选择合适的数据类型存储数据 |
MySQL性能优化与运维诊断 | 1. 索引使用限制与索引使用原则 2. 高并发与多线程 3. 线程数合理设置 4. 传统复制常见错误及填坑方法 5. 使用硬链接删除大表 6. …… |
查询优化实践 ①查询优化技术 包括查询重用、查询重写规则、查询算法优化、并行查询优化等 ②逻辑查询优化 包括子查询的优化、视图重写、等价谓词重写、条件化简、连接消除、非SPJ的优化等 ③逻辑物理优化 包括单表扫描算法、两表连接算法、多表连接算法、基于代价的算法等 | 1. 子查询的优化:明确掌握子查询优化手段 2. 视图重写与等价谓词重写 3. 条件化简 4. 外连接消除、嵌套连接消除与连接消除 5.数据库的约束规则与语义优化 6. 非SPJ的优化--GROUP BY、ORDER BY、LIMIT、DISTINCT等怎么被优化? 7. MySQL物理查询优化技术 8. MySQL索引的利用、优化 ①MySQL索引原理 ②MySQL索引优化实战篇 索引优化实战-案例 9. 表扫描与连接算法与MySQL多表连接优化实践 ①MySQL多表连接的优化技巧。 ②千万级别大表如何做多表关联 10. 执行计划Explain分析 |
生产业务实践 | 1. 数据库规范核心 2. 选择合适的数据类型存储数据 3. 数据表优化 ①核心数据表设计--45列 ②字段类型设计 ③对表逻辑更新 ④添加创建和修改时间列 ⑤添加version版本控制列--在业务层实现乐观锁 4. 如何查找慢查询--为什么要注意优化慢查询--对业务的危害 5. 优化大表总要性--经验一般在10G内 6. 为什么不要在MySQL使用text/blob/json 7. 为什么要限制DML操作的数据大小 8. 查询MySQL表有没有流量访问 9. 处理海量数据时的一些优化查询速度方法 10. 数据库的高级特性,该特性在实际生产中的作用 11. MySQL排序优化与索引使用-案例分析 12. MySQL优化 ①SQL优化分析 ②优化嵌套查询 ③分页优化案例 ④如何提前获取慢SQL ⑤SQL语句执行慢真假刨析 ⑥MySQL连接无法自动释放 ⑦查询MySQL偶尔比较慢 ⑧MySQL挂起诊断思路 ⑨并发DML+DDL造成死锁 13. 查询优化的综合实例-TPCH实践 14. SQL优化总结 |
MySQL分库分表 | 1. 数据库垂直拆分案例分析 2. 数据库水平切分案例分析 ①非分片键字段查询如何实现 ②跨库分页方案 ③跨节点Join查询 ④数据统计 3. 分库分表技术中间件选型 4. 分布式事务--分布式DB |
深度结合优化:MySQL和NoSQL结合优化 | 1. db-cache一致性 ①主从DB与cache一致性优化 ②DB主从一致性架构优化方法 2. MySQ到ElasticSearch宽表构建和同步 |
MySQL灾备体系 | 1. 备份恢复 2. 同城单活架构 3. 同城双活架构 4. 同城异地灾备架构 5. 多中心多活架构 |
国产分布式数据库建设 | 1. 基于Proxy分布式数据库架构(兼容MySQL模式) 2. 基于云原生分布式数据库架构(兼容MySQL模式) 3. 在业务上给我们带来的优势 4. 实战 |
工具篇 | 1. 硬件常规常用查看命令 2. 系统负载常用查看命令 3. Sysbench数据库压测工具 4. Prometheus+Grafana构建监控平台 5. mysqladmin和innotop工具 6. 备份工具mysqldump 7. 物理热备XtraBackup 8. 多线程备份工具mydumper 9. Percona Toolkit工具 10. MySQL闪回工具 11. SQL审核inception 12. SQL优化分析SQLAdvisor和SOAR |