
mysql
文章平均质量分 61
华山拎壶冲
不积跬步,无以至千里。。。
面试必备:https://www.jianshu.com/u/c3be0f69940b
展开
-
innodb日志文件(redo-log,undo-log)
innodb事务日志包括redo log和undo log。redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。undo log不是redo log的逆向过程,其实它们都算是用来恢复的日志:1.redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。2.undo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。1.re转载 2021-06-29 21:27:47 · 1240 阅读 · 0 评论 -
MySQL 用 limit 为什么会影响性能?
一.前言首先说明一下MySQL的版本:mysql> select version();+-----------+| version() |+-----------+| 5.7.17 |+-----------+1 row in set (0.00 sec)表结构:mysql> desc test;+--------+---------------------+------+-----+---------+----------------+..转载 2021-06-26 10:19:08 · 357 阅读 · 0 评论 -
慢sql优化必看
https://blog.youkuaiyun.com/qq_42865087/article/details/109202607?share_token=10ACDE1C-5967-4049-87D6-67BD08BAE1F3&tt_from=weixin&utm_source=weixin&utm_medium=toutiao_ios&utm_campaign=client_share&wxshare_count=1原创 2021-06-26 01:09:17 · 319 阅读 · 0 评论 -
B-Tree和B+Tree详解
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大于根的键值。如下图所示就是一棵二叉查找树,对该二叉树的节点进行查找发现深度为1的节点的查找次数为1,深...转载 2021-06-22 10:11:16 · 1883 阅读 · 0 评论 -
innodb MVCC底层原理详解
1 简介MVCC(Multi-Version Concurrency Control)多版本并发控制,是用来在数据库中控制并发的方法,实现对数据库的并发访问用的。在MySQL中,MVCC只在读取已提交(Read Committed)和可重复读(Repeatable Read)两个事务级别下有效。其是通过Undo日志中的版本链和ReadView一致性视图来实现的。MVCC就是在多个事务同时存在时,SELECT语句找寻到具体是版本链上的哪个版本,然后在找到的版本上返回其中所记录的数据的过程。首先需要知道的转载 2021-06-19 19:01:07 · 137 阅读 · 0 评论 -
从千万级数据查询来聊一聊索引结构和数据库原理
在日常工作中我们不可避免地会遇到慢SQL问题,比如笔者在之前的公司时会定期收到DBA彪哥发来的Oracle AWR报告,并特别提示我某条sql近阶段执行明显很慢,可能要优化一下等。对于这样的问题通常大家的第一反应就是看看sql是不是写的不合理啊诸如:“避免使用in和not in,否则可能会导致全表扫描”“ 避免在where子句中对字段进行函数操作”等等,还有一种常见的反应就是这个表有没有加索引?绝大部分情况下,加了个索引基本上就搞定了。既然题目是《从千万级数据查询来聊一聊索引结构和数据库原理》,首先就来转载 2020-06-28 17:15:43 · 277 阅读 · 0 评论 -
Mysql乐观锁与悲观锁实例讲解
悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则...转载 2018-08-10 09:52:55 · 461 阅读 · 1 评论 -
MySQL-InnoDB事务隔离级别和锁机制
一、基础知识1.索引1.1 聚集索引InnoDB中的表是索引组织表,即表中的数据按主键顺序存放。 聚集索引即按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据。也将聚集索引的叶子节点称为数据页,每个数据页都通过一个双向链表来进行链接。对于聚集索引来说,索引即数据,数据即索引。 因为一张表中只能有一个主键(但主键可由多列组成),因此每张表只能拥有一个聚集...转载 2019-07-09 14:30:48 · 655 阅读 · 0 评论