1.首先从hash表开始 hash表检索速度很快,时间复杂度为O(1),但是不能进行范围查询,而数据库的调用往往需要用到范围查询2.为了解决范围查询,用到了二叉排序树 二叉排序树解决了范围查询问题,但是存在极端情况,就是二叉排序树只有左子树,而且左子树呈现链状,这种情况下,查询效率就非常低了,并且数据库中的主键例如id等大部分情况下也是呈顺序排列3.为了解决极端情况,提出了红黑树和AVL(自平衡二
转载
2024-02-02 08:04:45
27阅读
老生常谈的数据库引擎到底是Who?MySQL中的数据采用各种不同的技术存储在文件(或者内存)中。每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,我们能够获得额外的速度或者功能,从而改善喝提高应用的整体功能。当我们理解了引擎这个概念,就会知道提供各种不同引擎给你选择,然后用你选出来的引擎去处理sql语句MYSQL常用的四个数据库引擎:(1)
转载
2023-09-30 09:23:03
65阅读
让我再深撸一次mysql吧,这次主要以应对面试来说说mysql,大概几个方向,索引结构,查询引擎,索引优化,explain的详解和trace工具的使用。索引:我们先来看一下mysql的B+tree,本文几乎都在围绕这个图来说的。mysql的底层是使用B+tree来存储数据的,和B+tree有一点点不同的是叶子节点是双向链表的结构,并不是图内的单向指针的。且null值放置在叶子节点的最前面。这个
转载
2024-02-03 00:10:22
98阅读
1、概念1.1 数据库事务:简单的说事务就是一组原子性的SQL语句。可以将这组语句理解成一个工作单元,要么全部执行要么都不执行。默认MySQL中自动提交时开启的(start transaction)事务的ACID特性如下:原子性:事务中的所有操作要么全部提交成功,要么全部失败回滚。场景:UPDATE cs_user SET age = 18 , gender = '女' WHERE id = 4。
转载
2023-09-13 16:52:49
122阅读
在深入了解 MySQL 的底层原理之前,我们首先要明确它在数据库管理系统中的重要性。MySQL 是一种流行的关系数据库管理系统,广泛应用于各种场景,特别是网站和企业管理软件。为了更好地理解 MySQL 的运作机制,我们需要从多个方面进行剖析,包括技术原理、架构解析、源码分析、性能优化,以及应用场景。
```mermaid
flowchart TD
A[MySQL底层原理] --> B[技
概念数据库具有事务特征,事务具有ACID特征,分别是原子性、一致性、隔离性、持久性。 那么ACID的实现原理又是具有什么实现的,就拿mysql来说明。原理mysql具有redo log 和undo log,这二种文件都是事务相关的问题。 每次开启一个事务,则mysql的innodb引擎就会生成一张undo log文件,该文件主要记录这个事务ID所产生的一些更新、删除、插入操作。当事务1执行upda
[面试] MySQL事务ACID的底层实现原理//面试问道ACID 不能只答ACID是什么..要带到底层原理.背后的原理就是MVCC
1.原子性 (Atomicity) :事务是- 一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行
//底层的实现原理是UndoLog
InnoDB提供了两种事务的日志:1.redoLog 2.undolog 其中undo log就是实现
转载
2023-08-02 20:15:40
84阅读
此篇文章算是对mysql事务的一个总结,在了解这些之前我们先对mysql在执行的过程中 有一个整体的认识,如下图如上图所示,MySQL服务器逻辑架构从上往下可以分为三层:(1)第一层:处理客户端连接、授权认证等。(2)第二层:服务器层,负责查询语句的解析、优化、缓存以及内置函数的实现、存储过程等。(3)第三层:存储引擎,负责MySQL中数据的存储和提取。MySQL中服务器层不管理事务,事务是由存储
转载
2024-04-24 22:25:48
46阅读
理解mysql 底层原理mysql 关系数据库的一种,开源免费,支持百万级的存储性能、性能稳定、社区活跃 鉴于 本人半路出家,对于一些原理的东西都不怎么了解,正好 无所事事的情况下,翻博客,吸取知识,然后 再总结出自己的一套理论。mysql 常用存储引擎innodb InnoDB 的存储文件有两个,后缀名分别是 .frm 和 .idb,其中 .frm 是表的定义文件,而 idb 是数据文件。 In
转载
2023-08-08 07:03:52
62阅读
存储引擎很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身。那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的?其实存储引擎也很简单,我认为就是一种存储解决方案,实现了新增数据、更新数据和建立索引等等功能。有哪些已有的存储引擎可以让我们选择呢?InnoDB、MyISAM、Memory、CSV、Archive、Blackhole、Merge、Feder
转载
2023-08-23 19:51:40
58阅读
网络连接层, 对客户端的连接处理、安全认证、授权等,每个客户端连接都会在服务端拥有一个线程,每个连接发起的查询都会在对应的单独线程中执行。服务器上维护一个线程池,避免为每个连接创建和销毁线程。当客户端连接到MySQL服务器时,服务器对其进行认证。可以通过用户名与密码认证,也可以通过SSL证书进行认证。登录认证后,服务器还会验证客户端是否有执行某个查询的操作权限。这一层并不是MySQL所特有的技术。
转载
2023-07-13 06:39:34
9阅读
1 简介 MVCC(Multi-Version Concurrency Control)多版本并发控制,是用来在数据库中控制并发的方法,实现对数据库的并发访问用的。在MySQL中,MVCC只在读取已提交(Read Committed)和可重复读(Repeatable Read)两个事务级别下有效。其
转载
2021-02-19 10:54:00
455阅读
2评论
常见的数据库存储引擎有MyISAM和InnoDB(这里指的是数据表级别的存储引擎)。 由于一个库中有不同的表,而不同的表可能对应着不同的存储引擎。这里纠正一个错误的概念:可能有很多人认为,如果一个数据库使用的InnoDB存储引擎,那么这个数据库中所有的表都是InnoDB的 ,其实并不是这样的。我们在设计表的时候有个选项,选项里面是可以选择存储引擎的,里面有很多不同种类的存储引擎,也就是说一个库里面
转载
2024-06-05 20:17:21
207阅读
一、MySQL内部组件结构1、Server层1.1、连接器当有客户端要向mysql发起通信必须先跟Server端建立通信连接,而建立连接的工作由连接器完成的首先连到数据库,这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接mysql -h 127.0.0.1 -u root -p 123456 -P 3306在完成 TCP 握手后,连接器就会开始进行认证用户名和密码,认
转载
2023-08-20 21:20:42
187阅读
大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server层:包括连接器、查询缓存、分析器、优化器、
原创
2023-07-25 17:51:20
57阅读
# MySQL中IN语句的底层原理
MySQL数据库是当今最流行的关系型数据库管理系统之一。在构建SQL查询时,`IN`语句是一种常用的条件表达方式。它允许我们方便地检查某个值是否在一个列表中,例如:
```sql
SELECT * FROM users WHERE id IN (1, 2, 3);
```
## IN语句的工作原理
`IN`语句的底层实现其实是通过将列表中的值转换为一个内
原创
2024-08-27 06:24:43
228阅读
这是学习笔记的第 1893 篇文章 我们先来看一下InnoDB的体系结构图。这个图分为三个部分,上面的是缓存层,中间是线程层,下面是系统文件层。在每个层里面又会不断的细分,在MySQL里面存储的单位是页,大小是16k。缓存层是大量的缓存结构,里面大量的数据都是作为缓存,可以提高访问的查取效率。系统层是相应的数据字典,数据文件和日志文件,其中binlog是MySQL 
Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,因为数据库中存储了大量数据,一个高效的索引能节省巨大的时间。比
InnoDB一个支持事务安全的存储引擎,同时也是mysql的默认存储引擎。本文主要从数据结构的角度,详细介绍InnoDB行记录格式和数据页的实现原理,从底层看清InnoDB存储引擎。InnoDB简介大家都知道mysql中数据是存储在物理磁盘上的,而真正的数据处理又是在内存中执行的。由于磁盘的读写速度非常慢,如果每次操作都对磁盘进行频繁读写的话,那么性能一定非常差。为了上述问题,InnoDB将数据划
转载
2023-12-15 10:58:43
13阅读
Mysql的结构示意图如图所示: +++++++++++++++++++++++++++++++++++++++++++、 上面的图就是mysql的内部架构,可以清楚的看到Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的。 下面是关于上述部件的介绍: 1. connectors 与其他编程语言中的sql 语句进行交互,如php、java等。Management Serveic
转载
2024-06-24 22:27:29
27阅读