
MySQL技术
文章平均质量分 91
MySQL相关的技术文章,包括事务、索引、性能等。
冲上云霄的Jayden
这个作者很懒,什么都没留下…
展开
-
垂直分表、水平分表详解
垂直分表就是把一张表按列分为多张表,多张表通过主键进行关联,从而组成完整的数据。分表之后,每张表的结构都不相同。垂直分表不需要额外引用其他组件,需要到Repository层面建立好表映射即可。水平分表就是指以行为单位对数据进行拆分,一般意义上的分库分表指的就是水平分表。分表之后,所有表的结构都是一样的。水平分表需要额外引入中间主键完成,例如shardingSphere等。原创 2023-06-06 12:14:23 · 3012 阅读 · 0 评论 -
MySQL查询性能优化之索引覆盖、索引下推、索引潜水、索引合并
索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本的新特性,它能减少回表查询次数,提高查询效率。先看下实际操作。原创 2023-05-24 10:14:16 · 1348 阅读 · 0 评论 -
MySQL-数据目录浅析
MySQL有几个内置的数据库,这几个数据库包含了MySQL服务器运行过程中所需的一些信息以及一些运行状态信息。原创 2023-02-12 11:41:57 · 418 阅读 · 0 评论 -
MySQL-InnoDB数据页结构浅析
在中,们简单提了一下的概念,它是 InnoDB 管理存储空间的基本单位,一个页的大小一般是 16KB。InnoDB 为了不同的目的而设计了许多种不同类型的。原创 2023-02-11 22:32:58 · 506 阅读 · 0 评论 -
MySQL-InnoDB行格式浅析
简介 我们知道读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我们想从表中获取某些记录时, InnoDB 存储引擎需要一条一条的把记录从磁盘上读出来么? 不,那样会慢死,InnoDB 采取的方式是:将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为 16 KB。 也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。InnoDB行格式 我们平时是以记录为单位来向表中插入数据的,这些记录在磁盘上原创 2023-02-11 20:21:09 · 1023 阅读 · 0 评论 -
MySQL-字符集和比较规则
在计算机中只能存储二进制数据,那该怎么存储字符串呢?当然是建立字符与二进制数据的映射关系。原创 2023-02-11 19:42:25 · 976 阅读 · 0 评论 -
MySQL-5.7 innodb在线DDL操作性能和并发
MySQL5.7 innodb在线DDL操作性能和并发原创 2023-01-07 20:15:20 · 896 阅读 · 0 评论 -
MySQL-5.7 innodb在线DDL操作(增删改索引、列、外键、表、外键)
MySQL-5.7 innodb在线DDL操作(增删改索引、列、外键、表、外键)原创 2023-01-07 19:22:25 · 2257 阅读 · 0 评论 -
MySQL-explain命令
explain命令explainselect u.id from ent_user uleft join ent_employee e on u.user_sn=e.user_snwhere u.id = 1; 对于查询语句,最重要的优化方式就是使用索引。 而执行计划,就是显示数据库引擎对于SQL语句的执行的详细情况,其中包含了是否使用索引,使用什么索引,使用的索引的相关信息等。执行计划包含的信息 id 执行计划包含的信息 id 有一组数字组成。表示一个查询中各个子查询的执行顺序原创 2022-03-09 21:58:14 · 281 阅读 · 0 评论 -
MySQL-InnoDB之Gap Lock、Next-Key Lock、Record Lock解析
MySQL InnoDB支持三种行锁定方式:行锁(Record Lock):锁直接加在索引记录上面,锁住的是key。间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙不变。间隙锁是针对事务隔离级别为可重复读或以上级别而已的。Next-Key Lock :行锁和间隙锁组合起来就叫Next-Key Lock。 默认情况下,InnoDB工作在可重复读隔离级别下,并且会以Next-Key Lock的方式对数据行进行加锁,这样可以有效防止幻读的发生。Next-Key Lock是行锁和间隙锁原创 2022-03-03 22:59:34 · 1465 阅读 · 0 评论 -
MySQL-InnoDB MVCC实现、Read View使用详解
MVCC 全称Multi-Version Concurrency Control,MVCC是一种通过增加版本冗余数据来实现并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 InnoDB中实现了MVCC主要是为了提高数据库的并发性能,在无锁的情况下也能处理读写并发,大大提高数据库的并发度。原创 2022-02-27 14:46:33 · 1390 阅读 · 0 评论 -
MySQL-ACID、事务隔离级别
指在一个事务读取一个数据时,另外一个事务也访问了该数据,那么在第一个事务中修改了这个数据后,第二个事务也修改了这个数据。例如:事务 1 读取某表中的数据 A=20,事务 2 也读取 A=20,事务 1 修改 A=A-1,事务 2 也修改 A=A-1,最终结果 A=19,事务 1 的修改被丢失。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。: 最低的隔离级别,允许读取其他事务尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。原创 2022-02-27 13:36:09 · 200 阅读 · 0 评论 -
MySQL-主键索引、二级索引、聚簇索引、非聚簇索引、辅助索引、创建索引注意事项
索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有: B 树, B+树和 Hash。原创 2022-02-26 23:11:11 · 3863 阅读 · 1 评论 -
MySQL-基础架构
了解MySQL的基础架构,先看下MySQL都有那些组件,已经各个组件的关系、功能。MySQL基础架构图 MySQL基础架构主要分为Server、存储引擎。 Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务 功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在 这一层实现,比如存储过程、触发器、视图等。 存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、 Memory等多个存储引擎原创 2022-01-13 22:09:21 · 980 阅读 · 0 评论