随笔分类 -  技术 / mysql学习

摘要:五、索引和算法 略 六、锁 lock和latch latch一般称为闩锁(轻量级的锁),因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差。在InnoDB引擎中,latch又可以分为 mutex(互斥量)和 rwlock(读写锁)。其目的是用来保证并发线程操作临界资源的正确性,并且 阅读全文
posted @ 2023-10-08 19:31 LHX2018 阅读(41) 评论(0) 推荐(0)
摘要:数据在表中是如何组合字和存放的。 4.1 索引组织表 在InnoDB 存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table)。在InnoDB存储引擎表中,每张表都有个主键,如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下 阅读全文
posted @ 2023-10-07 20:32 LHX2018 阅读(35) 评论(0) 推荐(0)
摘要:参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。 日志文件:用来记录MySQL实例对某种条件作出响应时写入的文件,如错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件等。 socket文件:当 阅读全文
posted @ 2023-09-23 09:50 LHX2018 阅读(65) 评论(0) 推荐(0)
摘要:## 2.3 InnoDB体系架构 ![image](https://img2023.cnblogs.com/blog/826913/202308/826913-20230826121458056-723840382.png) ### 1)后台线程 Master Thread:核心线程,主要负责将缓 阅读全文
posted @ 2023-08-26 12:15 LHX2018 阅读(29) 评论(0) 推荐(0)
摘要:# 一、MySQL体系结构和存储引擎 ## 1.1 定义数据库和实例 - 数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据库文件可以是 frm、MYD、MYI、ibd结尾的文件。 - 实例:MySQL数据库由后台线程以及一个共享内存区组成。共享内存可以被运行得后台线程所共 阅读全文
posted @ 2023-08-26 12:14 LHX2018 阅读(33) 评论(0) 推荐(0)
摘要:# 七、MySQL高级性能 ## 7.1 分区表 MySQL在创建表时使用PARTITION BY 子句定义每个分区存放的数据 分区的一个主要目的是将数据按照一个较粗的力度分在不同的表中。这样做可以将相关的数据存放在一起 ### 1)分区表的原理 SELECT 查询:当查询一个分区表的时候,分区层先 阅读全文
posted @ 2023-08-13 09:32 LHX2018 阅读(46) 评论(0) 推荐(0)
摘要:查询优化、索引优化、库表结构优化需要齐头并进,一个不落 ## 6.1 为什么查询速度会慢 真正重要的是响应时间。如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行得 阅读全文
posted @ 2023-08-05 18:55 LHX2018 阅读(75) 评论(0) 推荐(0)
摘要:## 5.1 索引基础 索引可以包含一个或多个列的值。如果索引包含多个列,那么列的顺序也十分重要,因为MySQL只能高效地使用索引的最左前缀列。创建一个包含两个列的索引,和创建两个只包含一列的索引是大不相同的。 ### 1)索引的类型 #### B-Tree类型 全值匹配:指的是和索引中的所有列进行 阅读全文
posted @ 2023-08-05 18:54 LHX2018 阅读(24) 评论(0) 推荐(0)
摘要:## 4.1 选择优化的数据类型 更小的通常更好 一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。 但要确保没有低估需要存储的值的范围,因为在schema中的多个地方增加数据类型的范围是一个非 阅读全文
posted @ 2023-07-28 20:09 LHX2018 阅读(27) 评论(0) 推荐(0)
摘要:最常碰到的三个性能相关的服务请求是:如何确认服务器是否达到了性能最佳的状态、找出某条语句为什么执行不够快,以及诊断被用户描述成 "停顿"、"堆积" 或者 "卡死" 的某些间歇性疑难故障。 ## 3.1 性能优化简介 我们将性能定义为完成某件任务所需要的时间度量。换句话说,性能即响应时间。这是一个非常 阅读全文
posted @ 2023-07-28 20:08 LHX2018 阅读(76) 评论(0) 推荐(0)
摘要:基准测试(benchmark):是针对系统设计的一种压力测试。通常的目标是为了掌握系统的行为。但也有其他原因,如重现某个系统状态,或者是做新硬件的可靠性测试。 ## 2.1 为什么需要基准测试 - 验证基于系统的一些假设,确认这些假设是否符合实际情况 - 重现系统中的某些异常行为,以解决这些异常 - 阅读全文
posted @ 2023-07-23 21:27 LHX2018 阅读(54) 评论(0) 推荐(0)
摘要:mysql最重要、最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离。这种处理和存储分离的设计可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。 ## 1.1 MySQL 逻辑结构 ![image](https://img2023.cnbl 阅读全文
posted @ 2023-07-15 20:13 LHX2018 阅读(46) 评论(0) 推荐(0)
摘要:假定读者对MySQL有一定的了解,对系统管理、网络和类Unix的操作系统都有一定了解。 版本区别: - 关注点不同(第三版):指出MySQL为什么会这样做,而不是MySQL做了什么。使用更多的演示和案例学习将上述原则落地。通过这样的方式,希望能够尝试回到下面这样的问题:给出MySQL的内部结构和操作 阅读全文
posted @ 2023-07-09 22:24 LHX2018 阅读(17) 评论(0) 推荐(0)
摘要:参考博客: https://my.oschina.net/wangzemin/blog/5346534 InnoDB之BufferPool https://juejin.cn/post/7007421609900245000 InnoDB - 整体架构:内存结构与磁盘结构 https://www.c 阅读全文
posted @ 2021-12-08 16:42 LHX2018 阅读(59) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/eagle89/article/details/81315981 阅读全文
posted @ 2021-12-08 14:57 LHX2018 阅读(14) 评论(0) 推荐(0)
摘要:参考博客:https://www.cnblogs.com/wyq178/p/12548864.html 自增的主键的值是顺序的,所以Innodb把每一条记录都存储在一条记录的后面。当达到页面的最大填充因子时候(innodb默认的最大填充因子是页大小的15/16,会留出1/16的空间留作以后的修改): 阅读全文
posted @ 2021-12-08 14:51 LHX2018 阅读(164) 评论(0) 推荐(0)
摘要:参考博客:https://www.cnblogs.com/kismetv/p/11582214.html 阅读全文
posted @ 2021-12-08 14:33 LHX2018 阅读(18) 评论(0) 推荐(0)
摘要:1.索引的种类 聚簇索引,非聚簇索引 主键索引,唯一索引,普通索引(前缀索引),全文索引 单值索引,复合索引 二级索引 覆盖索引 1.1 聚簇索引,非聚簇索引 参考文档: https://www.cnblogs.com/jiawen010/p/11805241.html https://learnk 阅读全文
posted @ 2021-12-08 14:05 LHX2018 阅读(70) 评论(0) 推荐(0)
摘要:参考:https://cloud.tencent.com/developer/article/1533746 InnoDB: frm,ibd MyISAM: frm,myd,myi ibd是InnoDB的表数据文件,而frm是InnoDB的表结构文件,myi是索引文件,myd是数据文件。从这里也可以 阅读全文
posted @ 2021-12-08 13:10 LHX2018 阅读(751) 评论(0) 推荐(0)
摘要::都市为存储很大数据而设计的字符串数据类型,分别采用二进制和字符方式存储。当blob和text值太大时,innodb会使用专门的"外部"存储区域来进行存储,此时每个值在行内需要1~4个字节存储一个指针,然后在外部存储区域存储实际的值。 :两者的不同之处在于,blob存储的是二进制数据,没有排序规则或 阅读全文
posted @ 2021-12-08 13:05 LHX2018 阅读(579) 评论(0) 推荐(0)