分类: MySQL

9 篇文章

thumbnail
日志
日志 我们在讲解数据库事务时,讲过两种日志:重做日志、回滚日志 对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。我们可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。比如:从日志中发现某个连接中的 SQL 操作发生了死循环,导致内存不足,被系统强行终止了。明确了…
thumbnail
多版本并发控制
多版本并发控制 1. 什么是 MVCC MVCC(Multi Version Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。这项技术使得在 InnoDB 的事务隔离级别下执行 一致性读 操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它…
thumbnail
锁 1. 概述 锁 是计算机协调多个进程或线程 并发访问某一资源 的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻 最多只有一个线程 在访问,保证数据的 完整性 和 一致性 。在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样…
thumbnail
事务
事务 事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失 1. 概述 1.1 存储引擎支持情况 SHOW ENGINES 命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务 能看出在 My…
thumbnail
索引优化与查询优化
索引优化与查询优化 1. 数据准备 学员表插50万条,班级表插1万条 CREATE DATABASE atguigudb2; USE atguigudb2; 步骤1:建表 CREATE TABLE `class` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `className` VARCHAR(30) DEFA…
thumbnail
性能分析工具的使用
性能分析工具的使用 在数据库调优中,我们的目标是响应时间更快, 吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式 1. 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候,该如何思考呢?这里把思考的流程整理成下面这张图 整个流程划分成了观察(Show status)和行动(Action)两个部分。字母 S 的部分…
thumbnail
索引
索引 1. 概述 MySQL 官方对索引的定义为:索引(Index)是帮助 MySQL 高效获取数据的数据结构 索引的本质:索引是数据结构。你可以简单理解为 “排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现 高级查找算法 索引是在存储引擎中实现的,因此每种存储引擎的索引不一定完全相…
thumbnail
存储引擎
存储引擎 1. 概述 为了管理方便,人们把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为MySQL server的功能 把真实存取数据的功能划分为存储引擎的功能。所以在 MySQL server 完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的 API, 获取到数据后返回给客户端就好了 MySQL 中提到了…
thumbnail
逻辑架构
逻辑架构 1. 逻辑架构剖析 1.1 服务器处理客户端请求 首先 MySQL 是典型的 C/S 架构,即 Clinet/Server 架构,服务端程序使用的 mysqld 不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果是:客户端进程向服务器进程发送一段文本(SQL 语句),服务器进程处理后再向客户端进程发送一段文本(处理结果) 那…