开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2360人左右 1 + 2 + 3 + 4 +5 + 6 + 7)(1 2 3 4 5 群均已爆满,6群急速扩张ing,请不要在问有没有位置谢谢)
DBA的书籍大致分为几种
1 专业技术类书籍
2 大咖分享工作经验分享
3 以上两类以外 如 盖老师最近新发的 《数据库简史》(属于宏观类的数据库业界的巨作)
今天咱们要说的是第二类书籍,薛晓刚,薛大师的 DBA 实战手记,为了满足读者的好奇心,咱们把目录给大家展示一下。
其实第一种和第二种书籍最大的不同点,在于知识的输出形式的不同,第一类书籍具有技术的专业性,第二类书籍是数据库工作者在多年的工作中,将自己的工作经验和工作方式和业内的同学进行分享的类型。
有时候,工作一段时间,或出入职场,对于本质工作会不清晰,或恍惚,那么读一读,前人的工作经验的总结和一些工作的思路,是让自己重新走上清晰的职场道路的一种方式。
更重要的是,如果在阅读书中的内容后,有新的想法和一些问题,还可以在薛老师有时间的情况下,在本群和薛老师近距离的沟通。
所以如果在工作中遇到一些屏障的时候,可以在这本书里面,找找感觉。
第1章 漫谈数据库
1 什么是数据库
1.2 数据库发展史
1.2.1 国外数据库的历史 1.2.2 国内数据库的历史
1.3 数据库的主要分类
1.3.1 关系数据库:传统交易数据库 1.3.2 键值数据库:基于KV键值对的内存数据库 1.3.3 列式数据库:列式存储的分析型数据库 1.3.4 文档型数据库:松散型数据结构的数据库 1.3.5 图数据库:用于社交图谱的数据库 1.3.6 时序数据库:适用于物联网场景的数据库 1.3.7 搜索引擎数据库:全文索引的数据库 1.3.8 多模数据库:具有多种数据库模式的融合数据库 1.3.9 最容易忽视的数据库—移动端数据库
1.4 数据库应用的发展趋势
1.4.1 国外数据库应用发展趋势 1.4.2 国内数据库应用发展趋势
1.5 数据库与新兴数字技术
1.5.1 数据库与大数据技术 1.5.2 数据库的延伸:区块链、物联网
1.6 与数据库长相厮守的DBA
1.6.1 DBA的定义与内涵 1.6.2 DBA的工作职责 1.6.3 DBA需要具备的能力 1.6.4 DBA的价值 1.6.5 DBA是可以做一辈子的职业
第2章 如何提升数据库性能
2.1 通过索引提升性能
2.1.1 索引的概念及原理 2.1.2 索引的种类 2.1.3 规避索引使用的误区 2.1.4 通过索引实现海量数据中的高效查询 2.1.5 自动化索引:数据库自治的趋势
2.2 通过SQL优化提升性能
2.2.1 SQL优化实现高速执行任务 2.2.2 慎用分页有效提升性能 2.2.3 从认知上杜绝低效SQL
2.3 避免数据库对象设计失误
2.3.1 避免不必要的多表关联导致的低效查询 2.3.2 避免动态计算结果没有单独存储导致的低效查询 2.3.3 避免没有明确需求查询条件导致的低效查询 2.3.4 避免过度分表
2.4 从识别需求的合理性提升性能
2.4.1 拒绝无效需求 2.4.2 正确理解开发需求 2.4.3 拒绝不合理的需求 2.4.4 引导业务改善需求
2.5 减少IO操作提升数据库性能
2.5.1 正确认识数据库的性能 2.5.2 减少IO交互—批量写入数据(MySQL) 2.5.3 减少IO交互—批量写入数据(Oracle) 2.5.4 减少IO交互—批量写入数据(PostgreSQL) 2.5.5 精简架构
第3章 如何运维好数据库
3.1 运维好数据库的关键:处理故障
3.1.1 常见的数据库故障类型 3.1.2 数据库故障的危害
3.2 分析处理数据库故障的关键点
3.2.1 分析数据库故障的主要原因—SQL 3.2.2 分析SQL的主要问题—处理速度慢 3.2.3 分析数据库参数对数据库的影响 3.2.4 分析硬件短板带来的问题—IO吞吐能力与CPU计算能力
3.3 数据库故障处理的典型案例分析
3.3.1 一次Elasticsearch误删除的故障分析 3.3.2 一次配置文件丢失导致的MySQL数据库故障分析 3.3.3 一次In-Memory丢失引起的故障分析 3.3.4 一次疑似分区查询异常的故障分析 3.3.5 一次数据库归档导致的故障分析 3.3.6 一次数据库binlog写入失败的故障分析 3.3.7 一次两表关联导致的故障分析 3.3.8 数据库连接数与连接复用不当的故障分析 3.3.9 一次数据库CPU使用率100%的故障分析 3.3.10 一次数据库索引不当引起的故障分析 3.3.11 一次数据库主从延迟过大的故障分析 3.3.12 一次数据库主从不一致的故障分析 3.3.13 一次Redis数据库无法启动的故障分析 3.3.14 一次MySQL数据库数据类型不恰当导致的故障 3.3.15 一次数据库全表查询的优化
第4章 如何进行数据库设计 、
4.1 数据库都有哪些架构
4.1.1 集中式架构
4.1.2 分布式架构
4.1.3 数据库内部的体系架构
4.1.4 “烟囱”式的数据库架构
4.1.5 独立业务线的数据库架构
4.2 根据实际场景选择数据库架构
4.3 五个维度谈数据库选型
4.3.1 从业务场景特征维度
4.3.2 从数据规模大小维度
4.3.3 从用户自身开发团队能力维度
4.3.4 从用户自身运维团队能力维度
4.3.5 从公司管理能力维度
4.4 数据库拆分的利与弊
4.4.1 数据库拆分的背景
4.4.2 数据库拆分的三大问题:一致性、数据关联、数据同步
4.4.3 分表带来的问题:一致性、聚合、排序、扩缩容
4.5 如何看待数据库的合并
4.5.1 为何要做数据库合并
4.5.2 数据库合并的意义:降成本、提升稳定性
4.5.3 数据库合并带来的问题:鸡蛋放在一个篮子里
4.5.4 数据库合并的前提:高质量SQL、硬件的进步、稳定的基础环境
4.6 CAP理论与分布式数据库
4.6.1 CAP理论概述
4.6.2 CAP理论的延展
4.6.3 分库分表不是分布式数据库
4.7 如何看待数据库与中间件
4.7.1 数据库与中间件:上下游的“难兄难弟”
4.7.2 中间件内存溢出的原因:源头还是数据库
4.7.3 适当减少数据库与中间件的数量:避免不必要的故障节点
第5章 如何做好数据库之间的数据同步
5.1 数据同步的作用
5.1.1 实现数据传输
5.1.2 实现数据汇聚
5.1.3 实现数据迁移
5.2 数据库同步的分类
5.2.1 同构数据库的同步
5.2.2 异构数据库的同步
5.2.3 数据库到消息队列的同步
5.2.4 数据库到 Hadoop 的数据同步
5.3 同构数据库数据同步的示例
5.3.1 使用 dblink 实现 Oracle 数据库之间的数据同步 - 5.3.2 使用物化视图实现远程 Oracle 数据库之间的数据同步 5.3.3 使用插件实现 MySQL 数据库之间的数据同步 5.3.4 利用数据同步实现 MySQL 的 5.3.5 采用多源复制的功能实现 MySQL 数据库之间的数据同步 5.3.6 采用主从模式实现 PostgreSQL 主从数据同步 5.4 异构数据库同步的实例—基于 OGG 5.4.1 CDC 简介 5.4.2 OGG 概述 5.4.3 OGG 微服务版的安装部署 5.4.4 使用 OGG for Oracle 实现 Oracle 数据库之间的数据同步 5.4.5 使用 OGG for MySQL 实现 MySQL 与异构数据库的同步 5.4.6 使用 OGG for BigData 实现大数据组件与异构数据库的数据同步
第6章 认识 HTAP 技术
6.1 HTAP 的概念及其价值 6.1.1 HTAP:混合事务/分析处理 6.1.2 HTAP 的价值 6.2 HTAP 的几种实现方式 6.2.1 垂直方向的实现 6.2.2 水平方向的实现:以 MySQL、TiDB 数据库为例 6.2.3 其他类型数据库的实现方式
第7章 认识数据库的功能原理
7.1 优化器—基于统计学原理 7.2 数据库的查询—火山模型 7.3 数据库 AI—向量化 7.4 编译执行
第8章 认识数据库中的数学(逻辑与算法)
8.1 数据库中的典型逻辑与算法
8.1.1 从斐波那契数列到数据分析
8.1.2 增加数据维度处理—减少关联
8.1.3 多表关联算法—一对多与多对多
8.1.4 排除处理算法—笛卡儿积
8.1.5 函数算法—对 SQL 的影响
8.2 动态规划法在数据库中的应用
8.2.1 动态规划原理 1:爬楼梯
8.2.2 动态规划原理 2:背包问题
8.2.3 动态规划的五部曲
8.3 数据库开发中的逻辑思维
8.3.1 元数据的空与非空
8.3.2 优化器处理极值和极限:加速查询速度
8.3.3 并发处理热点的逻辑:避免锁
8.3.4 减库存的逻辑:从设计出发防止超卖
第9章 DBA的日常:数据库管理及开发的最佳实践
9.1 七个针对数据库特性的最佳实践 9.1.1 Oracle的DML重定向 9.1.2 Oracle的资源隔离 9.1.3 MySQL的延迟复制—挽救误删除 9.1.4 PostgreSQL的延迟复制 9.1.5 数据库对于磁盘IO吞吐的要求 9.2 面向执行器和优化器的最佳实践 9.2.1 主流数据库的事务异常处理机制对比(MySQL、PostgreSQL、Oracle) 9.2.2 MySQL和达梦两个数据库优化器的对比 9.2.3 SQL语句的解析过程分析 9.2.4 优化器的多表关联 9.2.5 SQL使用in进行子查询 9.2.6 数据归档和数据迁移 9.3 数据库的复制(克隆)与高可用受控切换的最佳实践 9.3.1 Oracle的PDB数据库克隆 9.3.2 MySQL克隆的关键点 9.3.3 MySQL的MGR架构以及受控切换 9.3.4 PostgreSQL的高可用切换 9.3.5 Redis的高可用切换 9.4 三个SQL编写的最佳实践 9.4.1 关于MyBatis开发框架使用绑定变量的实践 9.4.2 使用exists的SQL语句的改写9.4.3 设计上出发减少SQL的标量子查询 9.5 时序数据库使用的最佳实践 9.5.1 时序数据库的数据库表设计 9.5.2 时序数据库的数据分析 附录 DBA杂谈
置顶文章:
阿里云数据库产品 对内对外一样的卷 --3年阿里云数据库的使用感受与反馈系列
阿里云数据库使用感受--客户服务问题深入剖析与什么是廉价客户 --3年的使用感受与反馈系列
往期热门文章:
PolarDB 最近遇到加字段加不上的问题 与 使用PolarDB 三年感受与恳谈
PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆
MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验
临时工访谈:从国产数据库 到 普罗大众的产品 !与在美国创业软件公司老板对话
感谢 老虎刘 刘老师 对 5月20日 SQL 问题纠正贴 ---PostgreSQL 同一种SQL为什么这样写会提升45%性能
PostgreSQL 同一种SQL为什么这样写会提升45%性能 --程序员和DBA思维方式不同决定
PostgreSQL 熊灿灿一句话够学半个月 之 KILL -9
临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一 (阿里云组团PK笔者实录)
临时工访谈:金牌 “女” 销售从ORACLE 转到另类国产数据库 到底 为什么?
临时工访谈:无名氏意外到访-- 也祝你好运(管理者PUA DBA现场直播)