第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 #数据库
第09章_性能分析工具的使用 在数据库调优中,我们的目标是 响应时间更快, 吞吐量更大 。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式。 1. 数据库服务器的优化步骤当我们遇到数据库调优问题的时候,该如何思考呢?这里把思考的流程整理成下面这张图。 整个流程划分成了 观察(Show status) 和 行动(Action) 两个部分。字母 S 的部分代表观察(会使 用相应的分析工具),字母 A 代表的部分 2021-04-22 MySQL #MySQL #数据库
第08章_索引的创建与设计原则 1.1 索引的分类MySQL的索引包括 普通索引 主键索引 唯一性索引 单列索引 联合索引 空间索引 从 功能逻辑 上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。 按照 物理实现方式 ,索引可以分为 2 种:聚簇索引和非聚簇索引。 按照 `作用字段个数 进行划分,分成单列索引和联合索引。 1. 普通索引 在创建普通索引时,不附加任何限制条件,=& 2021-04-21 MySQL #MySQL #数据库