![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 89
MySQL 从入门到入土
踏遍三十六岸
万般皆是命 半点不由人……
展开
-
为什么 MySQL 采用 B+ 树作为索引?
索引数据最好能按顺序排列,这样可以使用「二分查找法」高效定位数据。假设我们现在用数组来存储索引,比如下面有一个排序的数组,如果要从中找出数字 3,最简单办法就是从头依次遍历查询,这种方法的时间复杂度是 O(n),查询效率并不高。因为该数组是有序的,所以我们可以采用二分查找法,比如下面这张采用二分法的查询过程图:可以看到,二分查找法每次都把查询的范围减半,这样时间复杂度就降到了 O(logn),但是每次查找都需要不断计算中间位置用数组来实现线性排序的数据虽然简单好用,但是插入新元素的时候性能太低。原创 2024-04-05 19:35:04 · 717 阅读 · 0 评论 -
索引常见面试题
这次主要介绍了索引的原理、分类和使用。我把重点总结在了下面这个表格。原创 2024-03-29 16:28:41 · 950 阅读 · 0 评论 -
MySQL中char与varchar的区别
因为char多存储一些空格,意味着需要从磁盘读写更多的数据、耗费更多内存、查找数据时删除空格可能也会耗费一些CPU性能。注意:这是MySQL层的描述,具体怎么存储由存储引擎决定。根据MySQL的官方文档。原创 2024-03-26 00:30:00 · 266 阅读 · 0 评论 -
从数据页的角度看 B+ 树
InnoDB 的数据是按「数据页」为单位来读写的,默认数据页大小为 16 KB。每个数据页之间通过双向链表的形式组织起来,物理上不连续,但是逻辑上连续。数据页内包含用户记录,每个记录之间用单向链表的方式组织起来,为了加快在数据页内高效查询记录,设计了一个页目录,页目录存储各个槽(分组),且主键值是有序的,于是可以通过二分查找法的方式进行检索从而提高效率。为了高效查询记录所在的数据页,InnoDB 采用 b+ 树作为索引,每个节点都是一个数据页。原创 2024-03-25 15:35:00 · 752 阅读 · 0 评论 -
图解MySQL目录
重点突击 MySQL 索引、事务、锁、日志等面试常问知识。原创 2024-03-25 14:15:37 · 317 阅读 · 0 评论 -
MySQL 日志:undo log、redo log、binlog 有什么用?
从这篇「」中,我们知道了一条查询语句经历的过程,这属于「读」一条记录的过程,如下图:那么,所以这次就带着这个问题,看看这三种日志是怎么工作的。原创 2024-03-22 19:05:36 · 1093 阅读 · 0 评论 -
数据库和缓存如何保证一致性?
一天,老板说「最近公司的用户越来越多了,但是服务器的访问速度越来越差的,阿旺帮我优化下,程序员阿旺听到老板口中的「画饼」后就非常期待,没有任何犹豫就接下了老板给的这个任务。阿旺登陆到了服务器,经过一番排查后,确认服务器的。这好办,给服务器加上 Redis,让其作为数据库的缓存。这样,在客户端请求数据时,如果能在缓存中命中数据,那就查询缓存,不用在去查询数据库,从而减轻数据库的压力,提高服务器的性能。原创 2024-03-17 00:45:00 · 961 阅读 · 0 评论 -
MySQL 一行记录是怎么存储的?
MySQL 的 NULL 值是怎么存放的?MySQL 的 Compact 行格式中会用「NULL值列表」来标记值为 NULL 的列,NULL 值并不会存储在行格式中的真实数据部分。NULL值列表会占用 1 字节空间,当表中所有字段都定义成 NOT NULL,行格式中就不会有 NULL值列表,这样可节省 1 字节的空间。MySQL 怎么知道 varchar(n) 实际占用数据的大小?MySQL 的 Compact 行格式中会用「变长字段长度列表」存储变长字段实际占用的数据大小。原创 2024-03-16 14:51:25 · 1024 阅读 · 0 评论 -
执行一条 select 语句,期间发生了什么?
大家好我是苏麟 , 今天开始又开一个坑 MySQL原理 .原创 2024-03-04 17:07:36 · 854 阅读 · 0 评论 -
数据同步MySQL -> Elasticsearch
大家好我是苏麟,今天聊聊数据同步 .原创 2024-02-23 10:56:24 · 1860 阅读 · 1 评论 -
数据库安装
注意 : 上述的 mysql80 是我们在安装MySQL时,默认指定的mysql的系统服务名,不是固 定的,如果未改动,默认就是mysql80。[]内为可选参数,如果需要连接远程的MySQL,需要加上这两个参数来指定远程主机IP、端口,如果 连接本地的MySQL,则无需指定这两个参数。MySQL安装完成之后,在系统启动时,会自动启动MySQL服务,我们无需手动启动了。安装好MySQL之后,还需要配置环境变量,这样才可以在任何目录下连接MySQL。点击左侧的 "高级系统设置",选择环境变量。原创 2024-01-18 17:59:58 · 952 阅读 · 0 评论