【数据库】《DBA实战手记》- 读书笔记

news2025/6/6 3:49:14

《DBA实战手记》基本介绍

  • 作者:薛晓刚 等
  • 出版时间:2024年6月
  • 出版社:机械工业出版社
  • ISBN:9787111757665

本书是一本指导DBA进行数据库开发和运维的实用手册,本书共9章,包括漫谈数据库、如何提升数据库性能、如何运维好数据库、如何进行数据库设计、如何做好数据库同步、认识HTAP技术、认识数据库的底层工作原理、认识数据库中的数学(逻辑与算法)、DBA的日常:数据库管理及运维的最佳实践,附录DBA杂谈。 本书内容是资深DBA多年实践经验的归纳总结,涵盖DBA日常工作中的主要方面,通过剖析众多的真实案例解读原理,分享技巧,提供思路,内容具备较强的启发性和指导性。 本书的受众包括但不限于想要了解如何提升数据库性能的应用开发人员、DBA、业务架构师、IT架构师、数据架构师、数据分析师、系统架构师、解决方案架构师和企业高级管理人员。

我于20250603开读,更新中

D1(p1-p32)

第一章漫谈数据库,对数据库的国内外发展历史及分类有了清晰的认知,还有相关技术大数据、区块链、物联网的延展,受益匪浅。

1.1 什么是数据库

是一种用于存储、管理和检索数据的系统。它允许多用户方便地组织、插入、更新、删除和查询数据。

1.2 数据库发展史

国外数据库的历史
时间段事件相关数据库/技术
1960s-1970s前关系型数据库阶段:关系模型的概念被提出,首个关系数据库管理系统(RDBMS)出现。IBM System R(研究项目),Ingres(1973加州大学伯克利分校)
1980s-2000s初关系型数据库阶段:SQL成为标准查询语言,多个商业RDBMS产品推出。Oracle(1979),Informix(1980),Sybase(1987),MySQL(1995,2009后由Oracle收购), PostgreSQL(1996开源), Microsoft SQL Server,SQLite
2000s中期至今后关系型数据库阶段:开源数据库兴起,NoSQL概念开始形成;云数据库服务开始流行。MongoDB(2009),Neo4j(2007),Redis(2009), Snowflake(2012),Amazon RDS, Google Cloud SQL
国内数据库的历史
时间段事件相关数据库/技术
1980s-1990s主要依赖于国外数据库技术,自主研发起步较晚。使用Oracle、IBM DB2等国外数据库产品
2000s随着互联网的发展,国内数据库技术快速进步,开源数据库得到广泛应用。达梦数据库DM2(1996),人大金仓KingbaseES(1999),TDSQL(2007),南大通用GBase(2007),神州数码通用数据库(2008),亚信AntDB(2008)
2010s至今国产数据库品牌逐渐崛起,多种类型数据库技术并行发展。蚂蚁OceanBase(2010),巨杉SequoiaDB(2011),华为GaussDB(2013),中兴GoldenDB(2014),阿里云PolarDB(2017),平凯星辰TiDB(2015),华为openGauss(2020)

1.3 数据库的主要分类

类型描述常见数据库优点缺点
关系数据库使用表格来组织数据,适用于需要高精度和完整性的交易处理。MySQL、PostgreSQL、Oracle、SQL Server、IBM DB2支持ACID事务、结构清晰、成熟稳定扩展性差,难以应对海量非结构化数据
键值数据库以键值对形式存储数据,适合缓存应用,提供快速的数据存取速度。Redis、Memcached高性能、简单易用、适合读写密集场景不支持复杂查询,不适合持久化大容量数据
列式数据库将数据按列存储,优化分析查询性能,适合大规模数据分析。ClickHouse、Cassandra、GreenPlum查询效率高,压缩比好,适合OLAP写入性能一般,不适合高频更新
文档型数据库存储半结构化数据如JSON文档,灵活性高。MongoDB结构灵活,适合嵌套数据和快速迭代开发查询能力不如关系型数据库,事务支持有限
图数据库专门用于存储和查询复杂网络关系的数据。Neo4j、NebulaGraph关系查询高效,适合社交网络、推荐系统学习成本高,不适用于传统业务场景
时序数据库设计用来处理时间序列数据,适用于物联网等场景。InfluxDB、TimescaleDB、OpenTSDB高效处理时间序列数据,压缩率高特定场景专用,通用性较弱
搜索引擎数据库提供全文搜索功能,用于快速查找信息。Elasticsearch搜索能力强,实时索引,支持大数据量数据一致性较差,运维复杂度较高
多模数据库支持多种数据模型(如文档、图、KV等)融合使用。Oracle-JSON&图、MySQL-KV插件memcache、PolarDB多引擎、PostgreSQL-各类插件多模型统一管理,减少系统复杂度功能集成复杂,学习曲线陡峭
移动端数据库专为移动设备设计的小型数据库,用于本地数据存储。SQLite、DuckDB轻量级、部署方便、低资源消耗功能有限,不适合大规模并发访问

1.4 数据库应用的发展趋势

国内外数据库应用排名

数据库排名网站 DB-Engines
https://db-engines.com/en/ranking

墨天轮排行榜
https://www.modb.pro/dbRank

数据库应用发展趋势

2021年信通院发布的《数据库发展研究报告》中指出了数据库未来的七大趋势:

序号趋势描述详细说明
1多模数据库实现一库多用支持多种数据模型(如关系型、文档、键值等)统一管理,减少系统复杂度和迁移成本,实现“一库多用”,提升开发效率与运维便捷性。ALL In One 最终多模带来了总成本的下降。
2统一框架支撑分析与事务混合处理在同一系统中融合OLTP与OLAP能力,消除传统ETL流程,支持实时分析与决策,显著降低架构复杂性和响应延迟。
3运用AI实现管理自治引入AI技术实现自动调优、故障自愈、资源预测等能力,提升数据库稳定性与运维效率,降低人工干预和运营成本。例如,Oracle Autonomous Database和Amazon Aurora都集成了AI功能来增强自治能力。
4充分利用新兴硬件结合NVMe SSD、GPU、RDMA、持久内存等新型硬件,大幅提升I/O性能、计算能力和网络传输效率,释放底层硬件潜力。
5与云基础设施深度结合深度适配云环境,支持弹性伸缩、高可用部署、Serverless模式等,推动数据库向云原生架构演进,提升资源利用率和服务灵活性。
6隐私计算技术助力安全能力提升融合同态加密、多方安全计算(MPC)、可信执行环境(TEE)等技术,在保障数据隐私的前提下实现安全计算,满足金融、政务等行业合规需求。
7区块链数据库辅助数据存证溯源将区块链的不可篡改特性与数据库的高效查询能力结合,适用于供应链、司法、版权等需可信存证与可追溯的业务场景。

1.5 数据库与新兴数字技术

技术与数据库的关系描述
HTAP(混合事务与分析处理)数据库架构演进,OLTP+OLAP 融合HTAP 是数据库技术从传统 OLTP(在线事务处理)和 OLAP(在线分析处理)分离架构向统一架构演进的结果。它允许在同一系统中同时执行高并发的事务操作和复杂的数据分析,避免了传统 ETL 流程带来的延迟与资源消耗。这种能力推动了实时决策的发展,成为新一代企业级数据库的重要特征。代表系统如 SAP HANA、阿里云 PolarDB-HTAP、PingCAP TiDB 等。
大数据技术广义技术集合,底层依赖数据库能力大数据技术本质上是数据库技术在数据规模扩大和应用场景扩展下的延伸与重构。它涵盖多个技术分支,如:Hadoop 生态(用于批处理)、Spark(支持内存计算与流处理)、Flink(实时流计算)、Delta Lake / Iceberg(数据湖技术)、图计算引擎(如 GraphX)等。虽然实现方式不同,但它们都依赖于数据库的基础能力(如结构化存储、查询语言、事务机制),并在此基础上构建更高层次的分布式、可扩展、高性能的数据处理能力。
区块链特殊形式的数据库,强调安全与信任区块链是一种具有不可篡改特性的分布式账本系统,其底层本质是一种特殊的数据库结构(如键值对 + 链式结构)。早期区块链系统如比特币使用简单的数据库模型,随着智能合约和复杂业务需求的发展,区块链开始引入数据库领域的事务控制、索引机制、共识算法等技术,形成一种新型可信数据管理系统。未来,区块链与数据库的深度融合将推动金融、司法、供应链等领域的信任机制革新。
物联网(IoT)推动数据库向时序化、专用化发展物联网设备持续产生海量时间序列数据,具备高并发写入、低更新频率、按时间窗口查询等特点。传统关系型数据库难以胜任此类场景,催生了时序数据库(Time Series Database)的发展。这类数据库通过压缩算法、高效索引、批量写入等机制优化性能,典型代表如 TDengine、InfluxDB、OpenTSDB 等。可以说,物联网的发展直接推动了数据库技术向专用化、场景化方向演进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2398304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多模态大语言模型arxiv论文略读(103)

Are Bigger Encoders Always Better in Vision Large Models? ➡️ 论文标题:Are Bigger Encoders Always Better in Vision Large Models? ➡️ 论文作者:Bozhou Li, Hao Liang, Zimo Meng, Wentao Zhang ➡️ 研究机构: 北京大学 ➡️ 问题背景&…

汇编语言基础: 搭建实验环境

环境配置 1.Visual Studio 创建空项目 创建成功 2.平台框架改为为WIN32 右键点击项目 点击属性 点击配置管理器 平台改为Win32(本文使用32位的汇编) 3.生成采用MASM 在项目属性里点击"生成依赖项"的"生成自定义" 勾选 masm 4.创建第一个汇编程序 右…

基于springboot的益智游戏系统的设计与实现

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言&#xff0…

第十二节:第四部分:集合框架:List系列集合:LinkedList集合的底层原理、特有方法、栈、队列

LinkedList集合的底层原理 LinkedList集合的应用场景之一 代码:掌握LinkedList集合的使用 package com.itheima.day19_Collection_List;import java.util.LinkedList; import java.util.List;//掌握LinkedList集合的使用。 public class ListTest3 {public static …

多模态大语言模型arxiv论文略读(104)

Talk Less, Interact Better: Evaluating In-context Conversational Adaptation in Multimodal LLMs ➡️ 论文标题:Talk Less, Interact Better: Evaluating In-context Conversational Adaptation in Multimodal LLMs ➡️ 论文作者:Yilun Hua, Yoav…

【C++高级主题】多重继承下的类作用域

目录 一、类作用域与名字查找规则:理解二义性的根源 1.1 类作用域的基本概念 1.2 单继承的名字查找流程 1.3 多重继承的名字查找特殊性 1.4 关键规则:“最近” 作用域优先,但多重继承无 “最近” 二、多重继承二义性的典型类型与代码示…

基于Android的一周穿搭APP的设计与实现 _springboot+vue

开发语言:Java框架:springboot AndroidJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat12开发软件:eclipse/myeclipse/ideaMaven包:Maven3.6 系统展示 APP登录 A…

机器学习——使用多个决策树

使用单一决策树的弱点之一是决策树对数据中的微小变化非常敏感,一个使算法不那么敏感或更健壮的解决方案,不是建立一个决策树,而是要建立大量的决策树,我们称之为树合奏。 在这个例子中,我们一直在使用最好的特性来分…

C# 中的对话框与导航:构建流畅用户交互的完整指南

在现代应用程序开发中,良好的用户交互体验是成功的关键因素之一。作为.NET开发者,熟练掌握C#中的对话框与导航技术,能够显著提升应用程序的易用性和专业性。本文将全面探讨Windows Forms、WPF、ASP.NET Core和MAUI等平台下的对话框与导航实现…

DeepSeek - 尝试一下GitHub Models中的DeepSeek

1.简单介绍 当前DeepSeek使用的人很多,各大AI平台中也快速引入了DeekSeek,比如Azure AI Foundary(以前名字是Azure AI Studio)中的Model Catalog, HuggingFace, GitHub Models等。同时也出现了一些支持DeepSeek的.NET类库。微软的Semantic Kernel也支持…

【判断酒酒花数】2022-3-31

缘由对超长正整数的处理&#xff1f; - C语言论坛 - 编程论坛 void 判断酒酒花数(_int64 n) {//缘由https://bbs.bccn.net/thread-508634-1-1.html_int64 t n; int h 0, j 0;//while (j < 3)h t % 10, t / 10, j;//整数的个位十位百位之和是其前缀while (t > 0)h t…

【OCCT+ImGUI系列】011-Poly-Poly_Triangle三角形面片

Poly_Triangle 是什么&#xff1f; Poly_Triangle 是一个非常轻量的类&#xff0c;用于表示一个三角网格中的单个三角形面片。它是构成 Poly_Triangulation&#xff08;三角网格对象&#xff09;的基本单位之一。之后会写关于碰撞检测的相关文章&#xff0c;三角面片是非常重要…

【机器学习基础】机器学习入门核心算法:Mini-Batch K-Means算法

机器学习入门核心算法&#xff1a;Mini-Batch K-Means算法 一、算法逻辑工作流程与传统K-Means对比 二、算法原理与数学推导1. 目标函数2. Mini-Batch更新规则3. 学习率衰减机制4. 伪代码 三、模型评估1. 内部评估指标2. 收敛性判断3. 超参数调优 四、应用案例1. 图像处理 - 颜…

机器学习实战36-基于遗传算法的水泵调度优化项目研究与代码实现

大家好,我是微学AI,今天给大家介绍一下机器学习实战36-基于遗传算法的水泵调度优化项目研究与代码实现。 文章目录 一、项目介绍二、项目背景三、数学原理与算法分析动态规划模型遗传算法设计编码方案适应度函数约束处理算法参数能量消耗模型一泵房能耗二泵房能耗效率计算模…

【仿muduo库实现并发服务器】使用正则表达式提取HTTP元素

使用正则表达式提取HTTP元素 1.正则表达式2.正则库的使用3.使用正则表达式提取HTTP请求行 1.正则表达式 正则表达式它其实是描述了一种字符串匹配的模式&#xff0c;它可以用来在一个字符串中检测一个特定格式的字串&#xff0c;以及可以将符合特定规则的字串进行替换或者提取…

核心机制:流量控制

搭配滑动窗口使用的 窗口大小 窗口越大,传输速度就越快,但是也不能无限大,太大了,对于可靠性会有影响 比如发生方以非常快的速度,发送,接收方的处理速度跟不上,也就会导致有效数据被接受方丢弃(又得重传) 流量控制,就是根据接收方的处理能力(如何衡量?),干预到发送方的发送…

极智项目 | 基于PyQT实现的YOLOv12行人目标检测软件设计

基于YOLOv12的专业级行人目标检测软件应用 开发者: 极智视界 软件下载&#xff1a;链接 &#x1f31f; 项目特色 专业检测: 基于最新YOLOv12模型&#xff0c;专门针对行人检测优化现代界面: 采用PyQt5构建的美观、直观的图形用户界面高性能: 支持GPU加速&#xff0c;检测速…

vscode不满足先决条件问题的解决——vscode的老版本安装与禁止更新(附安装包)

目录 起因 vscode更新设置的关闭 安装包 结语 起因 由于主包用的系统是centos的&#xff0c;且版本有点老了&#xff0c;再加上vscode现在不支持老版本的&#xff0c;这对主包来说更是雪上加霜啊 但是主包看了网上很多教程&#xff0c;眼花缭乱&#xff0c;好多配置要改&…

RustDesk 搭建自建服务器并设置服务自启动

目录 0. 介绍 1. 事前准备 1.1 有公网 ip 的云服务器一台 1.2 服务端部署包 1.3 客户端安装包 2. 部署 2.1 服务器环境准备 2.2 上传服务端部署包 2.3 运行 pm2 3. 客户端使用 3.1 安装 3.2 配置 3.2.1 解锁网络设置 3.2.2 ID / 中级服务器 3.3 启动效果 > …

【数据库】数据库恢复技术

数据库恢复技术 实现恢复的核心是使用冗余&#xff0c;也就是根据冗余数据重建不正确数据。 事务 事务是一个数据库操作序列&#xff0c;是一个不可分割的工作单位&#xff0c;是恢复和并发的基本单位。 在关系数据库中&#xff0c;一个事务是一条或多条SQL语句&#xff0c…