第18章_主从复制 1. 主从复制概述1.1 如何提升数据库并发能力在实际工作中,我们常常将Redis作为缓存与MySQL配合来使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在再访问数据库,这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis的缓存架构是高并发架构中非常重要的一环。 此外,一般应用对数据库而言都是“ 读多写少 ”,也就说对数据库读取数据的压力比较大,有一个思 2021-05-01 MySQL #MySQL #数据库
第17章_其他数据库日志 我们在讲解数据库事务时,讲过两种日志:重做日志、回滚日志。 对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。我们可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。比如:从日志中发现某个连接中的SQL操作发生了死循环,导致内存不足,被系统强行终止了。明确了原因,处理起来也就轻松了,系统很快就恢复了运行。 除了发现 2021-04-30 MySQL #MySQL #数据库
第16章_多版本并发控制 MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之,就是==为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值==,这样在做查询的时候就不用等待 2021-04-29 MySQL #MySQL #数据库
第15章_锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一-些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。 在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样很重要。 在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的 2021-04-28 MySQL #MySQL #数据库
第14章_MySQL事务日志 事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢? 事务的隔离性由 锁机制 实现。 而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。 REDO LOG 称为 重做日志 ,其是InnoDB存储引擎层的日志:在MySQL中,**redo日志用于记录事务操作的变化,记录的是数据修改后的值**。==提供再写入 2021-04-27 MySQL #MySQL #数据库
第13章_事务基础知识 1. 数据库事务概述1.1 存储引擎支持情况SHOW ENGINES 命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。 1.2 基本概念事务:==一组逻辑操作单元,使数据从一种状态变换到另一种状态。== 事务处理的原则:保证所有事务都作为 一个工作单元 来执行,即使出现了故障,都不能改变这种执行方 式。当在一个事务中执行多个 2021-04-26 MySQL #MySQL #数据库
第12章_数据库其他调优策略 1. 数据库调优的措施1.1 调优的目标 尽可能节省系统资源 ,以便系统可以提供更大负荷的服务。(吞吐量更大) 合理的结构设计和参数调整,以提高用户操作响应的速度 。(响应速度更快) 减少系统的瓶颈,提高MySQL数据库整体的性能。 1.2 如何定位调优问题不过随着用户量的不断增加,以及应用程序复杂度的提升,我们很难用“更快”去定义数据库调优的目标,因为用户在不同时间段访问服务器遇到的瓶颈不同, 2021-04-25 MySQL #MySQL #数据库
第11章_数据库的设计规范 1.1范式简介**在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。**可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别 。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 1.2范式的分类目前关系型数据库有六种常见范式,按照范式级别,从低到高分别是:第一范式(1NF)、第二范式 (2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式 2021-04-24 MySQL #MySQL #数据库
MySQL高级-SQL优化 在查询的字段上添加索引:索引是一种用于提高查询效率的数据结构。在查询的字段上添加索引可以让数据库快速定位到满足条件的记录,从而提高查询效率。 避免返回不必要的字段:返回不必要的字段会增加系统开销,因为数据库需要将这些字段从磁盘中读取出来并返回给客户端。因此,应该尽量避免返回不必要的字段,只返回查询所需的字段。 开启慢SQL日志并使用EXPLAIN进行分析:慢SQL日志可以记录执行时间超过指定阈值 2021-04-23 MySQL #MySQL #数据库
第10章_索引的优化与查询优化 1. 最佳左前缀法则在MySQL建立联合索引时会遵守最佳左前缀原则,即最左优先,在检索数据时从联合索引的最左边开始匹配。 MySQL 中的索引最左匹配原则是指,在使用复合索引进行查询时,如果查询条件中包含多个列,那么只有从复合索引的最左边开始的几个列被用到,才能够利用到这个索引。具体来说,MySQL 查询优化器会根据查询条件的匹配度,选择适当的索引来执行查询操作。 例如,假设我们有一个表 use 2021-04-23 MySQL #MySQL #数据库