1、先了解一下mysql数据库:MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。MySQL是开放源代码的。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。  MySQL结构图:2、影响数据库性能的因素: 1.服
转载 2023-08-17 10:25:33
86阅读
 由于业务逻辑的需要,必须对数据表的一或多行加入行锁,举个最简单的例子,图书借阅系统:假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为: SELECT restnum FROM book WHERE id =1 ; --如果restnum大于0,执行update UPDATE book SET restnum=restnum-1 WHERE id=1;
InnoDB存储引擎和大多数数据库一样(如Oracle和Microsoft SQL Server数据库),记录是以的形式存储的。这意味着页中保存着表中一数据。到MySQL 5.1时,InnoDB存储引擎提供了Compact和Redundant两种格式来存放行记录数据,Redundant是为兼容之前版本而保留的,如果你阅读过InnoDB的源代码,会发现源代码中是用PHYSICAL RECOR
# MySQL树形结构数据库设计中,树形结构是一种常见的数据结构,用于表达具有层次关系的数据。在MySQL中,我们可以使用树结构来管理和查询树形数据。本文将介绍如何在MySQL数据库中实现树结构,并给出相应的代码示例。 ## 1. 树结构概述 树结构是一种常见的树形数据存储方式,其中每个节点包含一个父节点ID和一个唯一的节点ID。通过这种方式,可以在数据库中轻松表示树形结构,并支
原创 2024-07-04 04:50:37
28阅读
  mysql中行的格式类型包括:Compact、redundant、dynamic、compressed这四种,之间是通过一个单向链表的形式来连接的,而我在实际工作中最常用到的是compact类型。  具体的类型可以在create中看到,例如:    compact类型又是由:记录的额外信息和记录的真实数据组成。     上图中的前五项:      变长字段长度列表、NULL
转载 2023-10-20 18:00:13
51阅读
一、局部性原理存储引擎负责对表中的数据的进行读取和写入,常用的存储引擎有InnoDB
原创 2023-05-23 10:42:29
99阅读
以Innodb引擎为例。mysql数据逻辑上是一存放的,物理上,则是以页单位存放的,页也是mysql操作的基本单位
原创 2022-11-11 12:10:15
85阅读
目录1. 二叉查找树(BST):不平衡2. 平衡二叉树(AVL):旋转耗时3. 红黑树:树太高4. B树:为磁盘而生5. B+树6. 感受B+树的威力7. 总结出处: bilibili 在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引)。本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明MySQL
InnoDB的数据页包含7部分通用部分Fil HeaderPage HeaderInfimum + Supremum RecordsPage DirectoryFil Trailer数据部分User RecordsFree Space数据页有两个 header/trailer对,内部对“页面标题”和“页面目录”主要是\ page程序组的关注点,而外部对“ Fil Header”和“ Fil Tra
转载 2024-01-16 15:55:22
50阅读
MySQL逻辑架构: 并发控制:由锁实现读锁:也叫共享锁,读锁互相不阻塞。A加锁表后A,b,c,d都能读该表但不能写该表。写锁:也叫排他锁,写锁相互阻塞。A加排他锁后,其他线程不能读写该表。 锁粒度:表锁:锁一个表,并发粒度小。代表存储引擎MyISAM锁:锁一数据,并发粒度大,并发操作表性能好。代表存储引擎InnoDB。锁粒度小系统对锁的开销也大。  假如给一个表
1、-- 删除重复,且保留最高的id: 因为删除的是a表的中的id小于b表中的。DELETE a FROM contacts a INNER JOIN contacts b WHERE a.id < b.id AND a.email = b.email;2、-- 删除重复,且保留最小的id: 因为删除的是a表的中的id大于b表中的。DELETE a FROM co
转载 2023-06-01 19:19:45
127阅读
# MySQL 各表数据 MySQL 是一种常用的关系型数据库管理系统,它通过表格的形式存储数据。在 MySQL 中,表由列和组成,列定义了表中的字段,则存储了具体的数据。在这篇文章中,我们将讨论 MySQL 中各表的数据。 ## 表的概念 在 MySQL 中,表是数据的组织方式。每个表都有一个特定的名称,并且包含了一系列的列和。列代表表的字段,用于存储特定类型的数据则代表具体
原创 2023-10-19 17:45:47
29阅读
mysql 水平切割和垂直切割1,水平分割:例:QQ的登录表。假设QQ的用户有100亿,如果只有一张表,每个用户登录的时候数据库都要从这100亿中查找,会很慢很慢。如果将这一张表分成100份,每张表有1亿条,就小了很多,比如qq0,qq1,qq1...qq99表。用户登录的时候,可以将用户的id0,那么会得到0-99的数,查询表的时候,将表名qq跟取模的数连接起来,就构建了表名。比如1234567
1.二叉树(binary tree)是节点的有限集合,这个集合或者空,或者由一个根及两个互不相交的称为这个根的左子树或右子树构成。 从定义可以看出,二叉树包括:1.空树 2.只有一个根节点 3.只有左子树 4.只有右子树 5.左右子树都存在 有且仅有这5中表现形式。(1)前序遍历:按照“根左右”,先遍历根节点,再遍历左子树 ,再遍历右子树(2)中序遍历:按照“左根右“,先遍历左子树,再遍历根节点,
文章目录数据库存储结构:页磁盘与内存交互基本单位:页页结构概述页的上层结构页的内部结构第一部分 文件头和文件尾文件头文件尾第二部分 空闲空间、用户记录和最大最小记录第三部分 目录页、页面头部 数据库存储结构:页索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切的说时存储在页结构中 。另一方面,索引是在存储引擎中实现的,MySQL服务器上的 存储引擎 负责对表中数
数据结构数据页代表这块16KB大小的存储空间可以被划分为过个部分,不同部分有不同功能:记录在页中的存储我们自己存储的记录会按照我们制定的航格式存储到User Records部分。但是在一开始生成页的时候,并没有这个部分,每当插入一条记录,都会从Free Space部分去申请一个记录大小的空间划分到User Records部分,当Free Space部分的空间全部被替代之后,也就意味着这个页使用完
转载 2023-09-21 14:52:20
131阅读
写在开头本篇文章是在总结掘金小册MySQL 是怎样运行的:从根儿上理解 MySQL中的第六章。小册讲得十分详细和易懂,写总结主要是会忘记,通过这种方式来加深记忆。数据结构innodb中有很多页的类型,undo log页、blob页、insert buff页等等。这里主要讲索引页,也就是数据页。MySQL中一级索引是聚簇索引,每张表都会建立一个聚簇索引,一个索引即一条数据。下表是一个数据页的结构
一、索引数据结构类型索引的本质:MySQL官方对索引的定义是,索引是帮助MySQL高效获取数据数据结构。那么提取这句话的主干,就可以得到索引的本质:索引是数据结构。 下面介绍几种数据结构(重点多去理解B-Tree和B+Tree):1、二叉树规则:二叉树结构,存放数据时,比根节点小的放在左侧,比根节点大的放在右侧。缺点:二叉树高度没有限制,当字段类型为int/bigint且递增时,树的高度也会递增
 创建数据表    在Mysql中,创建数据表通过SQL语句CREATE TABLE实现:     CREATE TABLE 表名( 属性名  数据类型 [完整性约束条件],                       
1. MySQL基础结构 重点简单版的结构 MySQL = 客户端 + 服务端 客户端 = Connection(语言连接器例如:PHP-pdo,MySQLi) 服务端 = SQL层 + 存储引擎层 SQL层 = 链接/线程处理 + 查询缓存 + 分析器 + 优化器 存储引擎 = InnoDB + MariaDB + .....Connection:
  • 1
  • 2
  • 3
  • 4
  • 5