- 博客(110)
- 资源 (5)
- 收藏
- 关注
原创 kubernetes 集群管理工具 kubectl
kubectl是Kubernetes集群的核心命令行工具,用于管理集群资源和部署容器化应用。其基本语法为kubectl [command] [TYPE] [NAME] [flags],支持多种操作如create、get、delete等。文章介绍了kubectl的自动补全配置方法(通过bash-completion),详细列举了常用的子命令及其功能(如apply、describe、logs等),并提供了Kubernetes资源对象类型及其缩略别名对照表。最后给出了基础操作示例,包括查看组件状态、创建Pod、暴
2025-10-09 16:28:55
842
原创 第三章 资源管理
本文介绍了Kubernetes中的资源管理方式及YAML语言基础。主要内容包括:Kubernetes将所有内容抽象为资源进行管理,核心资源包括Pod、控制器、Service和存储系统;YAML是一种人性化的数据格式语言,支持纯量、对象和数组三种数据类型,语法简洁易读;Kubernetes提供三种资源管理方式:命令式对象管理(直接操作)、命令式对象配置(通过文件)和声明式对象配置(使用apply命令)。文章还详细列出了常用的Kubernetes资源类型及其缩写,以及基本的操作命令如create、get、del
2025-09-30 10:51:20
1056
原创 第一章 kubernetes介绍
本文介绍了应用程序部署方式的演变历程,从传统部署、虚拟化部署到容器化部署,并重点讲解了Kubernetes容器编排系统。Kubernetes是一个开源的容器集群管理系统,具有自我修复、弹性伸缩、服务发现等功能。文章详细说明了Kubernetes的架构组成,包括控制节点(master)和工作节点(node)及其核心组件(如API Server、Scheduler等)。同时阐述了Pod、Controllers、Service等关键概念,以及它们如何协同工作来管理容器化应用。Kubernetes通过自动化资源管理
2025-09-26 16:02:55
828
原创 redis7详解
远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库。提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。
2023-04-23 15:37:23
3974
1
原创 第18章_主从复制
第18章_主从复制1. 主从复制概述1.1 如何提升数据库并发能力在实际工作中,我们常常将Redis作为缓存与MySQL配合来使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在再访问数据库,这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis的缓存架构是高并发架构中非常重要的一环。此外,一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是采用数据库集群的方案,做主从架构、进行读写分离,这样同样可以提升数据库的并发处理能力。
2022-08-14 15:02:45
1185
原创 第17章_其他数据库日志
第 17 章_其他数据库日志我们在讲解数据库事务时,讲过两种日志:重做日志、回滚日志。对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。我们可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。比如:从日志中发现某个连接中的SQL操作发生了死循环,导致内存不足,被系统强行终止了。明确了原因,处理起来也就轻松了,系统很快就恢复了运行。除了发现错误,日志在数据复制、数据恢复、操作审计,以及确保数据的永久性和一致性等方面,都有
2022-08-13 21:26:06
541
原创 第16章_多版本并发控制
MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用的(大家可以参考相关的DBMS文档)。...
2022-08-11 16:51:04
361
原创 第15章_锁
第 15 章_锁事务的隔离性由这章讲述的锁来实现。1. 概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样很重要。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。为保证数据的一致
2022-08-07 22:59:18
1094
原创 第14章_MySQL事务日志
第14章_MySQL事务日志事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?事务的隔离性由 锁机制 实现。而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。REDO LOG 称为 重做日志 ,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。UNDO LOG 称为 回滚日志 ,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。有的DBA或许会认为 UNDO 是 REDO 的逆过程,其实不然。其实
2022-08-07 22:36:42
443
原创 第13章_事务基础知识
命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。能看出在 MySQL 中,只有InnoDB 是支持事务的。
2022-08-06 23:43:08
491
原创 第12章_数据库其它调优策略
第12章_数据库其它调优策略1.数据库调优的措施1.1调优的目标尽可能节省系统资源,以便系统可以提供更大负荷的服务。(吞吐量更大)。合理的结构设计和参数调整,以提高用户操作响应的速度。(响应速度更快)减少系统的瓶颈,提高MySQL数据库整体的性能。1.2如何定位调优问题不过随着用户量的不断增加,以及应用程序复杂度的提升,我们很难用“更快”去定义数据库调优的目标,因为用户在不同时间段访问服务器遇到的瓶颈不同,比如双十一促销的时候会带来大规模的并发访问;还有用户在进行不同业务操作的时候,数据库
2022-08-05 11:53:31
465
原创 第11章_数据库的设计规范
在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。规范化vs性能为满足某种商业目标,数据库性能比规范化数据库更重要在数据规范化的同时,要综合考虑数据库的性能通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间通过在给定的表中插入计算列,以方便查询。.........
2022-07-31 23:10:12
1010
原创 第10章_索引优化与查询优化
理解方式一索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了满足查询结果的数据就叫做覆盖索引。**理解方式二**非聚簇复合索引的一种形式,它包括在查询里的SELECT、JOIN和WHERE子句用到的所有列(即建索引的字段正好是覆盖查询条件中所涉及的字段)。简单说就是,索引列+主键包含SELECT到FROM之间查询的列。**举例一。.........
2022-07-30 23:28:46
770
原创 第09章_性能分析工具的使用
*定位了查询慢的SQL之后,我们就可以使用EXPLAIN或DESCRIBE工具做针对性的分析查询语句。**DESCRIBE语句的使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。MySQL中有专门负责优化SELECT语句的优化器模块,主要功能通过计算分析系统中收集到的统计信息,为客户端请求的Query提供它认为最优的执行计划(他认为最优的数据检索方式,但不见得是DBA认为是最优的,这部分最耗费时间)。EXPLAIN语句来帮助我们查看某个查询语句的具体执行计划,大家看懂EXPLAIN,,.....
2022-07-28 16:32:32
909
原创 第08章_索引的创建与设计原则
①冗余索引举例建表语句如下我们知道,通过索引就可以对name列进行快速搜索,再创建一个专门针对name列的索引就算是一个冗余索引,维护这个索引只会增加维护的成本,并不会对搜索有什么好处。②重复索引另一种情况,我们可能会对某个列重复建立索引我们看到,col1既是主键、又给它定义为一个唯一索引,还给它定义了一个普通索引,可是主键本身就会生成聚簇索引,所以定义的唯一索引和普通索引是重复的,这种情况要避免。.....................
2022-07-17 21:31:00
414
原创 第07章_InnoDB数据存储结构
第07章_InnoDB数据存储结构索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中一般是不同的,甚至有的存储引擎比如Memory都不用磁盘来存储数据。数据库读写磁盘的基本单位是页(Page),数据库,无论是读一行,还是读取多行,都是将这些行所在的页进行加载。InnoDB将数据划分为若干个页,InnoDB中页的大小默认为 16KB以作为磁盘和内存
2022-07-10 22:38:29
621
原创 第06章_索引的数据结构
第06章_索引的数据结构索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教课书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则相关数据,如果不符合则需要全表扫描,即需要一条一条地查找记录,直到找到与条件符合的记录。如上图所示,数据库没有索引的情况下,数据,读取数据时,摆臂需要前后摆动查找数据,这样操作非常消耗时间。如果,那么也需要从1到6行按顺序读取,这样就相当于进行了6次10操作,。如果
2022-07-10 22:27:30
547
原创 第05章_存储引擎
第05章_存储引擎显式如下:2. 设置系统默认的存储引擎查看默认的存储引擎:如果在创建表的语句中没有显式指定表的存储引擎的话,那就会默认使用 作为表的存储引擎。如果我们想改变表的默认存储引擎的话,可以这样写启动服务器的命令行:或者修改 文件:3. 设置表的存储引擎存储引擎是负责对表中的数据进行提取和写入工作的,我们可以为 ,也就是说不同的表可以有不同的物理存储结构,不同的提取和写入方式。我们之前创建表的语句都没有指定表的存储引擎,那就会使用默认的存储引擎 。如果我们想显式的指定
2022-07-03 20:47:02
354
原创 第04章_逻辑架构
第 04 章_逻辑架构1. 逻辑架构剖析1. 1 服务器处理客户端请求那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果呢?这里以查询请求为例展示:下面具体展开看一下:1.2 Connectors1.3 第 1 层:连接层系统(客户端)访问MySQL服务器前,做的第一件事就是建立TCP连接。经过三次握手建立连接成功后,MySQL服务器对TCP传输过来的账号密码做身份认证、权限获取。用户名或密码不对,会收到一个Access denied for user错误,客户端
2022-07-02 22:51:49
706
1
原创 第03章_用户与权限管理
第03章_用户与权限管理1. 用户管理1.1 登录MySQL服务器启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下:mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"下面详细介绍命令中的参数:-h参数 后面接主机名或者主机IP,hostname为主机,hostIP为主机IP。-P参数 后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是
2022-06-30 21:31:23
809
原创 第02章_MySQL的数据目录
第02章_MySQL的数据目录1. MySQL8的主要目录结构find / -name mysql 安装好MySQL 8之后,我们查看如下的目录结构:1.1 数据库文件的存放路径MySQL数据库文件的存放路径:/var/lib/mysql/mysql> show variables like 'datadir'; +---------------+-----------------+| Variable_name | Value | +-----------
2022-06-26 18:24:20
861
原创 第01章_Linux下MySQL的安装与使用
第01章_Linux下MySQL的安装与使用1. 安装前说明1.1 Linux系统及工具的准备安装并启动好两台虚拟机: CentOS 7掌握克隆虚拟机的操作mac地址主机名ip地址UUID安装有 Xshell 和 Xftp 等访问CentOS系统的工具CentOS6和CentOS7在MySQL的使用中的区别1. 防火墙:6是iptables,7是firewalld 2. 启动服务的命令:6是service,7是systemctl 1.2 查看是否安装过MySQL
2022-06-17 16:05:05
939
原创 vmware安装CentOS 7
vmware安装CentOS 7安装CentOS 7整个安装过程分两大步,第一步装机器,第二步装系统.第一步:装机器检查物理机虚拟化支持是否开启,需要进入到BIOS中设置,因各种电脑型号进入BIOS方式不同,同学们自行查找对应品牌电脑如何进入BIOS建议: 先安装,如果安装中提示虚拟化未开启,再进入BIOS设置,如安装一切顺序,则不需要进行任何设置。在VMware中新建虚拟机默认即可,不需要做任何修改,直接下一步选择稍后安装操作系统,然后下一步选择安装的操作系统
2022-05-22 16:10:54
499
转载 第18章_MySQL8其它新特性
第18章_MySQL8其它新特性1. MySQL8新特性概述MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL Optimizer优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。1.1 MySQL8.0 新增特性1. 更简便的NoSQL支持NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展,传统的关系型数
2022-05-09 11:30:00
416
原创 第17章_触发器
第17章_触发器在实际开发中,我们经常会遇到这样的情况:有 2 个或者多个相互关联的表,如商品信息和库存信息分别存放在 2 个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时在库存表中添加一条库存记录。这样一来,我们就必须把这两个关联的操作步骤写到程序里面,而且要用事务包裹起来,确保这两个操作成为一个原子操作,要么全部执行,要么全部不执行。要是遇到特殊情况,可能还需要对数据进行手动维护,这样就很容易忘记其中的一步,导致数据缺失。这个时候,咱们可以使用触发器。**你可以创
2022-05-08 08:30:00
247
原创 第16章_变量、流程控制与游标
第16章_变量、流程控制与游标1. 变量在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。在 MySQL 数据库中,变量分为系统变量以及用户自定义变量。1.1 系统变量1.1.1 系统变量分类变量由系统定义,不是用户定义,属于服务器层面。启动MySQL服务,生成MySQL服务实例期间,MySQL将为MySQL服务器内存中的系统变量赋值,这些系统变量定义了当前MySQL服务实例的属性、特征。这些系统变量的值要么是编译MySQL时参数的默认值
2022-05-07 14:30:00
271
原创 第15章_存储过程与函数
文章目录第15章_存储过程与函数1. 存储过程概述1.1 理解1.2 分类2. 创建存储过程2.1 语法分析2.2 代码举例3. 调用存储过程3.1 调用格式3.2 代码举例3.3 如何调试4. 存储函数的使用4.1 语法分析4.2 调用存储函数4.3 代码举例4.4 对比存储函数和存储过程5. 存储过程和函数的查看、修改、删除5.1 查看5.2 修改5.3 删除6. 关于存储过程使用的争议6.1 优点6.2 缺点阿里开发规范第15章_存储过程与函数MySQL从5.0版本开始支持存储过程和函数。存储过
2022-05-07 08:15:00
364
原创 第14章_视图
文章目录第14章_视图1. 常见的数据库对象2. 视图概述2.1 为什么使用视图?2.2 视图的理解3. 创建视图3.1 创建单表视图3.2 创建多表联合视图3.3 基于视图创建视图4. 查看视图5. 更新视图的数据5.1 一般情况5.2 不可更新的视图6. 修改、删除视图6.1 修改视图6.2 删除视图7. 总结7.1 视图优点7.2 视图不足第14章_视图1. 常见的数据库对象对象描述表(TABLE)表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录数
2022-05-06 17:00:00
787
原创 第13章_约束
文章目录第13章_约束1. 约束(constraint)概述1.1 为什么需要约束1.2 什么是约束1.3 约束的分类2. 非空约束2.1 作用2.2 关键字2.3 特点2.4 添加非空约束2.5 删除非空约束3. 唯一性约束3.1 作用3.2 关键字3.3 特点3.4 添加唯一约束3.5 关于复合唯一约束3.5 删除唯一约束4. PRIMARY KEY 约束4.1 作用4.2 关键字4.3 特点4.4 添加主键约束4.5 关于复合主键4.6 删除主键约束5. 自增列:AUTO_INCREMENT5.1 作
2022-05-06 13:00:00
278
原创 第12章_MySQL数据类型精讲
文章目录第12章_MySQL数据类型精讲1. MySQL中的数据类型2. 整数类型2.1 类型介绍2.2 可选属性2.2.1 M2.2.2 UNSIGNED2.2.3 ZEROFILL2.3 适用场景2.4 如何选择?3. 浮点类型3.1 类型介绍3.2 数据精度说明3.3 精度误差说明4. 定点数类型4.1 类型介绍4.2 开发中经验5. 位类型:BIT6. 日期与时间类型6.1 YEAR类型6.2 DATE类型6.3 TIME类型6.4 DATETIME类型6.5 TIMESTAMP类型6.6 开发中经
2022-05-06 07:30:00
415
原创 第11章_数据处理之增删改
文章目录第11章_数据处理之增删改1. 插入数据1.1 实际问题1.2 方式1:VALUES的方式添加1.3 方式2:将查询结果插入到表中2. 更新数据3. 删除数据4. MySQL8新特性:计算列5. 综合案例第11章_数据处理之增删改1. 插入数据1.1 实际问题解决方式:使用 INSERT 语句向表中插入数据。1.2 方式1:VALUES的方式添加使用这种语法一次只能向表中插入一条数据。情况1:为表的所有字段按默认顺序插入数据INSERT INTO 表名VALUES (value
2022-05-05 21:30:00
303
原创 第10章_创建和管理表
文章目录第10章_创建和管理表1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型2. 创建和管理数据库2.1 创建数据库2.2 使用数据库2.3 修改数据库2.4 删除数据库3. 创建表3.1 创建方式13.2 创建方式23.3 查看数据表结构4. 修改表4.1 追加一个列4.2 修改一个列4.3 重命名一个列4.4 删除一个列5. 重命名表6. 删除表7. 清空表8. 内容拓展拓展1:阿里巴巴《Java开发手册》之MySQL字段命名拓展2:如何理解清空表、删除表等
2022-05-05 18:00:00
257
原创 第09章_子查询
文章目录第09章_子查询1. 需求分析与问题解决1.1 实际问题1.2 子查询的基本使用1.3 子查询的分类2. 单行子查询2.1 单行比较操作符2.2 代码示例2.3 HAVING 中的子查询2.4 CASE中的子查询2.5 子查询中的空值问题2.5 非法使用子查询3. 多行子查询3.1 多行比较操作符3.2 代码示例3.3 空值问题4. 相关子查询4.1 相关子查询执行流程4.2 代码示例4.3 EXISTS 与 NOT EXISTS关键字4.4 相关更新4.4 相关删除5. 抛一个思考题第09章_子
2022-05-05 09:00:00
267
原创 第08章_聚合函数
文章目录第08章_聚合函数1. 聚合函数介绍1.1 AVG和SUM函数1.2 MIN和MAX函数1.3 COUNT函数2. GROUP BY2.1 基本使用2.2 使用多个列分组2.3 GROUP BY中使用WITH ROLLUP3. HAVING3.1 基本使用3.2 WHERE和HAVING的对比4. SELECT的执行过程4.1 查询的结构4.2 SELECT执行顺序4.3 SQL 的执行原理第08章_聚合函数我们上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类,叫做聚合(或聚集、分
2022-05-04 18:30:00
210
原创 第07章_单行函数
文章目录第07章_单行函数1. 函数的理解1.1 什么是函数1.2 不同DBMS函数的差异1.3 MySQL的内置函数及分类2. 数值函数2.1 基本函数2.2 角度与弧度互换函数2.3 三角函数2.4 指数与对数2.5 进制间的转换3. 字符串函数4. 日期和时间函数4.1 获取日期、时间4.2 日期与时间戳的转换4.3 获取月份、星期、星期数、天数等函数4.4 日期的操作函数4.5 时间和秒钟转换的函数4.6 计算日期和时间的函数4.7 日期的格式化与解析5. 流程控制函数6. 加密与解密函数7. My
2022-05-03 07:15:00
253
原创 第06章_多表查询
第06章_多表查询多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。比如:员工表和部门表,这两个表依靠“部门编号”进行关联。1. 一个案例引发的多表连接1.1 案例说明从多个表中获取数据:#案例:查询员工的姓名及其部门名称SELECT last_name, department_nameFROM employees, departments;
2022-05-02 19:14:41
263
原创 第05章_排序与分页
第05章_排序与分页1. 排序数据1.1 排序规则使用 ORDER BY 子句排序ASC(ascend): 升序DESC(descend):降序ORDER BY 子句在SELECT语句的结尾。1.2 单列排序SELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY hire_date ;SELECT last_name, job_id, department_id,
2022-05-02 17:16:37
221
原创 第04章_运算符
第04章_运算符1. 算术运算符算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。1.加法与减法运算符mysql> SELECT 100, 100 + 0, 100 - 0, 100 + 50, 100 + 50 -30, 100 + 35.5, 100 - 35.5 FROM dual;+-----+---------+---------+----------+--------------+--
2022-04-29 17:17:16
373
经典飞机大战java源码
2018-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅