摘要:
五、索引和算法 略 六、锁 lock和latch latch一般称为闩锁(轻量级的锁),因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差。在InnoDB引擎中,latch又可以分为 mutex(互斥量)和 rwlock(读写锁)。其目的是用来保证并发线程操作临界资源的正确性,并且 阅读全文
摘要:
数据在表中是如何组合字和存放的。 4.1 索引组织表 在InnoDB 存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table)。在InnoDB存储引擎表中,每张表都有个主键,如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下 阅读全文
摘要:
参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。 日志文件:用来记录MySQL实例对某种条件作出响应时写入的文件,如错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件等。 socket文件:当 阅读全文
摘要:
## 2.3 InnoDB体系架构 ![image](https://img2023.cnblogs.com/blog/826913/202308/826913-20230826121458056-723840382.png) ### 1)后台线程 Master Thread:核心线程,主要负责将缓 阅读全文
摘要:
# 一、MySQL体系结构和存储引擎 ## 1.1 定义数据库和实例 - 数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据库文件可以是 frm、MYD、MYI、ibd结尾的文件。 - 实例:MySQL数据库由后台线程以及一个共享内存区组成。共享内存可以被运行得后台线程所共 阅读全文
摘要:
# 七、MySQL高级性能 ## 7.1 分区表 MySQL在创建表时使用PARTITION BY 子句定义每个分区存放的数据 分区的一个主要目的是将数据按照一个较粗的力度分在不同的表中。这样做可以将相关的数据存放在一起 ### 1)分区表的原理 SELECT 查询:当查询一个分区表的时候,分区层先 阅读全文
摘要:
查询优化、索引优化、库表结构优化需要齐头并进,一个不落 ## 6.1 为什么查询速度会慢 真正重要的是响应时间。如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行得 阅读全文
摘要:
## 5.1 索引基础 索引可以包含一个或多个列的值。如果索引包含多个列,那么列的顺序也十分重要,因为MySQL只能高效地使用索引的最左前缀列。创建一个包含两个列的索引,和创建两个只包含一列的索引是大不相同的。 ### 1)索引的类型 #### B-Tree类型 全值匹配:指的是和索引中的所有列进行 阅读全文
摘要:
## 4.1 选择优化的数据类型 更小的通常更好 一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。 但要确保没有低估需要存储的值的范围,因为在schema中的多个地方增加数据类型的范围是一个非 阅读全文
摘要:
最常碰到的三个性能相关的服务请求是:如何确认服务器是否达到了性能最佳的状态、找出某条语句为什么执行不够快,以及诊断被用户描述成 "停顿"、"堆积" 或者 "卡死" 的某些间歇性疑难故障。 ## 3.1 性能优化简介 我们将性能定义为完成某件任务所需要的时间度量。换句话说,性能即响应时间。这是一个非常 阅读全文