![](https://img-blog.csdnimg.cn/2021030209220085.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 76
MySQL笔记
流火如夏xx
保密
展开
-
MySQL 字符串函数
MySQL 字符串函数原创 2022-07-14 17:19:35 · 130 阅读 · 0 评论 -
MySQL是怎样运行的(六)
第6章 快速查询的秘籍——B+树索引InnoDB数据页的7个组成部分,各个数据页可以组成一个双向链表,每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在内的记录生成一个页目录,通过主键查找某条记录时可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定记录。其中页a、页b、页c...页n这些页可以不再物理结构上相连,只要通过双向链表相关联即可。6.1没有索引时进行查找6.1.1 在一个页中查找 以主键为搜索条..原创 2021-08-20 11:30:44 · 75 阅读 · 0 评论 -
MySQL是怎样运行的(五)
第5章 盛放记录的大盒子——InnoDB数据页结构5.1不同类型的页简介页是InnoDB管理存储空间的一个基本单位,一个页的大小一般是16KB。InnoDB为不同的目的而设计了许多种不同类型的页。那些存放我们表中记录的那种类型的页,叫做索引页。5.2数据页结构快览数据页这块16KB大小的存储空间可以划分为多个部分,不同部分有不同功能:一个InnoDB数据页的存储空间大致被分成7个部分:名称 中文名 占用空间大小 简单描述 File Header 文..原创 2021-08-20 09:08:12 · 133 阅读 · 0 评论 -
MySQL是怎样运行的(四)
第4章 从一条记录说起——InnoDB记录存储结构4.1准备工作MySQL服务器上负责对表中数据的读取和写入工作的部分是存储引擎,而服务器又支持不同类型的存储引擎,真实数据在不同的存储引擎中存放的格式一般是不同的4.2InnoDB页简介InnoDB是将表中的数据存储到磁盘上的存储引擎。将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为16KB。也就是在一般情况下,一次最少从磁盘中读取16KB内容到内存中,一次最少把内存中的16KB内容刷新到磁盘4..原创 2021-08-19 11:26:43 · 116 阅读 · 0 评论 -
MySQL是怎样运行的(三)
第3章 乱码的前世今生——字符集和比较规则 3.1字符集和比较规则3.1.1字符集简介计算机只能存储二进制数据,存储字符串要建立二进制数据映射关系:界定字符范围 将一个字符映射成一个二进制数据的过程也叫做编码,将一个二进制数据映射到一个字符的过程叫做解码抽象出一个字符集的概念来描述某个字符范围的编码规则3.2.2比较规则简介同一种字符集可以有多种比较规则3.2.3一些重要的字符集ASCII字符集 共收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可...原创 2021-08-18 15:13:12 · 98 阅读 · 0 评论 -
MySQL是怎样运行的(二)
第 2章 MySQL的调控按钮——启动选项和系统变量2.1 启动选项和配置文件2.1.1在命令行上使用选项启动客户端程序时在-h参数后边紧跟服务器的IP地址,这就意味着客户端和服务器之间需要通过TCP/IP网络进行通信。如果在启动服务器程序的时候就禁止客户端使用TCP/IP网络进行通信,可以在启动服务器程序的命令行里添加skip-networking启动选项。如:mysqld --skip-networking其中skip-networking也可以写成skip_networking。.原创 2021-08-18 09:36:05 · 228 阅读 · 0 评论 -
MySQL是怎样运行的(一)
第0章 楔子——阅读前必看第 1章 装作自己是个小白——初识MySQL 31.1 MySQL的客户端/服务器架构 31.2 MySQL的安装 31.3 启动MySQL服务器程序 51.3.1 在类UNIX系统中启动服务器程序 51.3.2 在Windows系统中启动服务器程序 61.4 启动MySQL客户端程序 71.5 客户端与服务器连接的过程 101.5.1 TCP/IP 101.5.2 命名管道和共享内存 101.5.3 UNIX域套接字 111.6 服务器处理客户端请求 1.原创 2021-08-17 15:54:22 · 1799 阅读 · 0 评论 -
查询优化
一、关联查询优化(1)保证被驱动表的join字段已经被索引(2)left join 时,选择小表作为驱动表,大表作为被驱动表。(3)inner join 时,mysql会自己帮你把小结果集的表选为驱动表。(4)子查询尽量不要放在被驱动表,有可能使用不到索引。二、子查询优化(1)有索引的情况下 :用 inner join 是最好的 其次是 in ,exists最糟糕(2)无索引的情况下用 a.小表驱动大表 因为join 方式需要...原创 2021-02-24 13:48:03 · 994 阅读 · 0 评论 -
索引优化
索引优化1. 全值匹配2. 最左前缀法则3.不在索引列上做任何操作(计算,函数,类型转换),会导致索引失效4. 存储引擎不能使用索引范围条件右边的列5.使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *6.使用 !=和<>,索引失效7.使用is not null,索引失效8.like以通配符开头(%asd...),索引失效9.字符串不加单引号,索引失效10 使用or,索引失效一般性建议1.对于单键索引,尽量选择针对当前qu原创 2021-02-24 10:12:14 · 86 阅读 · 0 评论 -
性能分析 -- explain
1. id:查询中select子句或操作表的顺序id相同,执行顺序由上到下id不同,越大优先级越高2. select_type:查询类型,主要区别于普通查询、联合查询、子查询、复杂查询SIMPLE:简单的查询PIMARY:查询中包含任何复杂的子部分,最外层标记为PRIMARYDERIVED:在from中包含的子查询被标记为DERIVED(衍生)SUBQUERY:在select或where中包含的子查询UNION:第二个select出现在union之后UNION RESULT:从union.原创 2021-02-24 09:54:21 · 82 阅读 · 0 评论 -
索引
一简介索引的本质是一种数据结构,可以理解为排好序的快速查找的数据结构优势:提高检索效率,降低I/O成本降低排序成本,减少cpu消耗劣势:占空间降低插入更新数据效率不断维护更新二索引分类主键索引单值索引唯一索引复合索引三索引结构B-TreeB+treefull-text全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用【分词技术】等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的算法规则智能地筛选出我们想原创 2021-02-23 17:35:10 · 106 阅读 · 0 评论 -
SQL执行顺序及常用join查询
1. SQL执行顺序手写:select distinct <select_list>from <left_table> <join_type>join <right_table> on <join_conditions>where <where_condition>group by <group_by_list>having <having_condit原创 2021-02-23 17:05:17 · 347 阅读 · 0 评论