
mysql入门到高级-高级篇
文章平均质量分 96
mysql入门到高级-高级篇
路人甲_passerby
坚持别人不能坚持的,才能拥有别人不能拥有的
展开
-
第19章 数据库备份与恢复
第19章 数据库备份与恢复。原创 2022-08-14 15:22:30 · 1397 阅读 · 1 评论 -
第18章_主从复制
第18章_主从复制1. 主从复制概述1.1 如何提升数据库并发能力在实际工作中,我们常常将Redis作为缓存与MySQL配合来使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在再访问数据库,这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis的缓存架构是高并发架构中非常重要的一环。此外,一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是采用数据库集群的方案,做主从架构、进行读写分离,这样同样可以提升数据库的并发处理能力。原创 2022-08-14 15:02:45 · 914 阅读 · 0 评论 -
第17章_其他数据库日志
第 17 章_其他数据库日志我们在讲解数据库事务时,讲过两种日志:重做日志、回滚日志。对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。我们可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。比如:从日志中发现某个连接中的SQL操作发生了死循环,导致内存不足,被系统强行终止了。明确了原因,处理起来也就轻松了,系统很快就恢复了运行。除了发现错误,日志在数据复制、数据恢复、操作审计,以及确保数据的永久性和一致性等方面,都有原创 2022-08-13 21:26:06 · 441 阅读 · 0 评论 -
第16章_多版本并发控制
MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用的(大家可以参考相关的DBMS文档)。...原创 2022-08-11 16:51:04 · 297 阅读 · 0 评论 -
第15章_锁
第 15 章_锁事务的隔离性由这章讲述的锁来实现。1. 概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样很重要。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。为保证数据的一致原创 2022-08-07 22:59:18 · 1010 阅读 · 0 评论 -
第14章_MySQL事务日志
第14章_MySQL事务日志事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?事务的隔离性由 锁机制 实现。而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。REDO LOG 称为 重做日志 ,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。UNDO LOG 称为 回滚日志 ,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。有的DBA或许会认为 UNDO 是 REDO 的逆过程,其实不然。其实原创 2022-08-07 22:36:42 · 361 阅读 · 0 评论 -
第13章_事务基础知识
命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。能看出在 MySQL 中,只有InnoDB 是支持事务的。原创 2022-08-06 23:43:08 · 385 阅读 · 0 评论 -
第11章_数据库的设计规范
在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。规范化vs性能为满足某种商业目标,数据库性能比规范化数据库更重要在数据规范化的同时,要综合考虑数据库的性能通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间通过在给定的表中插入计算列,以方便查询。.........原创 2022-07-31 23:10:12 · 825 阅读 · 0 评论 -
第10章_索引优化与查询优化
理解方式一索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了满足查询结果的数据就叫做覆盖索引。**理解方式二**非聚簇复合索引的一种形式,它包括在查询里的SELECT、JOIN和WHERE子句用到的所有列(即建索引的字段正好是覆盖查询条件中所涉及的字段)。简单说就是,索引列+主键包含SELECT到FROM之间查询的列。**举例一。.........原创 2022-07-30 23:28:46 · 644 阅读 · 0 评论 -
第09章_性能分析工具的使用
*定位了查询慢的SQL之后,我们就可以使用EXPLAIN或DESCRIBE工具做针对性的分析查询语句。**DESCRIBE语句的使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。MySQL中有专门负责优化SELECT语句的优化器模块,主要功能通过计算分析系统中收集到的统计信息,为客户端请求的Query提供它认为最优的执行计划(他认为最优的数据检索方式,但不见得是DBA认为是最优的,这部分最耗费时间)。EXPLAIN语句来帮助我们查看某个查询语句的具体执行计划,大家看懂EXPLAIN,,.....原创 2022-07-28 16:32:32 · 789 阅读 · 0 评论 -
第08章_索引的创建与设计原则
①冗余索引举例建表语句如下我们知道,通过索引就可以对name列进行快速搜索,再创建一个专门针对name列的索引就算是一个冗余索引,维护这个索引只会增加维护的成本,并不会对搜索有什么好处。②重复索引另一种情况,我们可能会对某个列重复建立索引我们看到,col1既是主键、又给它定义为一个唯一索引,还给它定义了一个普通索引,可是主键本身就会生成聚簇索引,所以定义的唯一索引和普通索引是重复的,这种情况要避免。.....................原创 2022-07-17 21:31:00 · 339 阅读 · 0 评论 -
第07章_InnoDB数据存储结构
第07章_InnoDB数据存储结构索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中一般是不同的,甚至有的存储引擎比如Memory都不用磁盘来存储数据。数据库读写磁盘的基本单位是页(Page),数据库,无论是读一行,还是读取多行,都是将这些行所在的页进行加载。InnoDB将数据划分为若干个页,InnoDB中页的大小默认为 16KB以作为磁盘和内存原创 2022-07-10 22:38:29 · 537 阅读 · 0 评论 -
第06章_索引的数据结构
第06章_索引的数据结构索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教课书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则相关数据,如果不符合则需要全表扫描,即需要一条一条地查找记录,直到找到与条件符合的记录。如上图所示,数据库没有索引的情况下,数据,读取数据时,摆臂需要前后摆动查找数据,这样操作非常消耗时间。如果,那么也需要从1到6行按顺序读取,这样就相当于进行了6次10操作,。如果原创 2022-07-10 22:27:30 · 418 阅读 · 0 评论 -
第05章_存储引擎
第05章_存储引擎显式如下:2. 设置系统默认的存储引擎查看默认的存储引擎:如果在创建表的语句中没有显式指定表的存储引擎的话,那就会默认使用 作为表的存储引擎。如果我们想改变表的默认存储引擎的话,可以这样写启动服务器的命令行:或者修改 文件:3. 设置表的存储引擎存储引擎是负责对表中的数据进行提取和写入工作的,我们可以为 ,也就是说不同的表可以有不同的物理存储结构,不同的提取和写入方式。我们之前创建表的语句都没有指定表的存储引擎,那就会使用默认的存储引擎 。如果我们想显式的指定原创 2022-07-03 20:47:02 · 252 阅读 · 0 评论 -
第04章_逻辑架构
第 04 章_逻辑架构1. 逻辑架构剖析1. 1 服务器处理客户端请求那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果呢?这里以查询请求为例展示:下面具体展开看一下:1.2 Connectors1.3 第 1 层:连接层系统(客户端)访问MySQL服务器前,做的第一件事就是建立TCP连接。经过三次握手建立连接成功后,MySQL服务器对TCP传输过来的账号密码做身份认证、权限获取。用户名或密码不对,会收到一个Access denied for user错误,客户端原创 2022-07-02 22:51:49 · 548 阅读 · 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 · 675 阅读 · 0 评论 -
第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 · 737 阅读 · 0 评论 -
第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 · 784 阅读 · 0 评论 -
vmware安装CentOS 7
vmware安装CentOS 7安装CentOS 7整个安装过程分两大步,第一步装机器,第二步装系统.第一步:装机器检查物理机虚拟化支持是否开启,需要进入到BIOS中设置,因各种电脑型号进入BIOS方式不同,同学们自行查找对应品牌电脑如何进入BIOS建议: 先安装,如果安装中提示虚拟化未开启,再进入BIOS设置,如安装一切顺序,则不需要进行任何设置。在VMware中新建虚拟机默认即可,不需要做任何修改,直接下一步选择稍后安装操作系统,然后下一步选择安装的操作系统原创 2022-05-22 16:10:54 · 400 阅读 · 0 评论