![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
爱笑的k11
关注微信公众号 '云海拾贝' , 获取大量优质推送!!!
展开
-
mysql insert锁机制(insert死锁)
一、前言上周遇到一个因insert而引发的死锁问题,其成因比较令人费解。于是想要了解一下insert加锁机制,但是发现网上介绍的文章比较少且零散,挖掘过程比较忙乱。本以为只需要系统学习一个较完全的逻辑,但是实际牵扯很多innodb锁相关知识及加锁方式。我好像并没有那么大的能耐,把各种场景的加锁过程一一列举并加之分析;亦没有太多的精力验证网上的言论的准确性。只好根据现在了解的内容,参考官方文...转载 2020-03-09 20:51:38 · 1838 阅读 · 0 评论 -
mysql b+树能存多少条数据?b+树每层有多少分支?
InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是4k,而对于我们的InnoDB存储引擎也有自己的最小储存单元——页(Page),一...转载 2020-03-04 17:20:34 · 1566 阅读 · 0 评论 -
Mysql死锁原理分析
文章来自何凳成博客1 背景MySQL/InnoDB 的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL 锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB 的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL 语句,就能完整的分析出这条语句会加什么锁?会有...转载 2020-02-23 13:19:43 · 1129 阅读 · 0 评论 -
MySQL的可重复读级别能解决幻读吗
from https://juejin.im/post/5c9040e95188252d92095a9e引言之前在深入了解数据库理论的时候,了解到事务的不同隔离级别可能存在的问题。为了更好的理解所以在MySQL数据库中测试复现这些问题。关于脏读和不可重复读在相应的隔离级别下都很容易的复现了。但是对于幻读,我发现在可重复读的隔离级别下没有出现,当时想到难道是MySQL对幻读做了什么处理?测试:...转载 2020-01-05 15:17:23 · 1105 阅读 · 1 评论 -
面试题:Mysql如何保证一致性?
Mysql如何保证一致性一致性主要包含:1. 多副本的一致性2. 一致性hash.3. CAP理论的一致性4. ACID里的一致性这里我门只讨论事务的一致性。一,关于事务和一致性的理解事务的产生,其实是为了当应用程序访问数据库的时候,事务能够简化我们的编程模型,不需要我们去考虑各种各样的潜在错误和并发问题.可以想一下当我们使用事务时,要么提交,要么回滚,我们不会去考虑网络异常了,服...原创 2020-01-04 22:31:10 · 9178 阅读 · 3 评论 -
谈谈你对Mysql的MVCC的理解?
MVCC(Mutil-Version Concurrency Control),就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。在Mysql的InnoDB引擎中就是指在已提交读(READ COMMITTD)和可重复读(REPEATABLE READ)这两种隔离级别下的事务对于SELECT操作会访问版本链中的记录的过程。这就使得别的事务可以修改...转载 2019-12-09 22:10:05 · 169 阅读 · 0 评论 -
Mysql中的索引知多少
1 Mysql查询优化器一条SQL语句的查询,可以有不同的执行方案,至于最终选择哪种方案,需要通过优化器进行选择,选择执行成本最低的方案。 在一条单表查询语句真正执行之前,MySQL的查询优化器会找出执行该语句所有可能使用的方案,对比之后找出成本最低的方案。这个成本最低的方案就是所谓的执行计划。 优化过程大致如下:1、根据搜索条件,找出所有可能使用的索引2、计算全表扫描的代价3、计算使用不...原创 2019-12-09 09:52:45 · 564 阅读 · 0 评论 -
高度为k的m阶b树至少有多少个结点,多少个关键字
k = 0--------------1k = 1--------------2ceil(m/2)^0k = 2--------------2ceil(m/2)^1k = 3--------------2ceil(m/2)^2k = 4--------------2ceil(m/2)^3‘’’’’’k = h--------------2ceil(m/2)^(h-1)根据等比数列求和...原创 2019-11-21 23:29:41 · 14495 阅读 · 0 评论 -
MySQL Binlog详解
https://www.cnblogs.com/xhyan/p/6530861.html1 MySQL binlog的作用Mysql的binlog日志作用是用于记录mysql内部增删改查等对mysql数据库有改动的记录(DML,DDL),对数据库的查询select或show等不会被binlog日志记录主要用于数据库的主从复制以及增量恢复注意:DML(data maintai...转载 2019-11-11 20:13:05 · 223 阅读 · 0 评论 -
2-3树的演变 红黑树---红黑的含义
转载:超级棒的2-3树,之后再引入红黑树,很清楚的理解了红黑树的性质https://blog.csdn.net/chen_zhang_yu/article/details/52415077对红黑树的操作请看,我没有整理https://blog.csdn.net/v_JULY_v/article/details/6105630前言红黑树,对不少人来说是个比较头疼的名字,在网上搜资料也很少有...转载 2019-11-10 21:32:10 · 168 阅读 · 0 评论 -
MySQL VARCHAR与CHAR的区别、VARCHAR(50)中的50代表什么
1、VARCHAR与CHAR的区别CHAR是一种固定长度的类型,VARCHAR则是一种可变长度的类型。CHAR列的长度固定为创建表时声明的长度,长度可以为从0到255(2^8-1=255)的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。VARCHAR列中的值为可变长字符串,长度可以指定为0到65...转载 2019-11-10 21:30:30 · 541 阅读 · 0 评论 -
mysql数据库隔离级别
mysql架构MySQL架构MySQL从概念上可以分为四层,顶层是接入层,不同语言的客户端通过mysql的协议与mysql服务器进行连接通信,接入层进行权限验证、连接池管理、线程管理等。下面是mysql服务层,包括sql解析器、sql优化器、数据缓冲、缓存等。再下面是mysql中的存储引擎层,mysql中存储引擎是基于表的。最后是系统文件层,保存数据、索引、日志等。事务的四个属性ACID...转载 2019-10-29 17:08:13 · 142 阅读 · 0 评论 -
索引,B树和B+树
简单介绍一下索引索引是为了帮助快速获取数据库数据的数据结构。基于数据库表创建,包含某一列的值及记录对应的地址。对于select from employee where name = ‘abc’,如果name做了索引,索引关键字就会按照字母顺序排列,假设索引是一个链表的数据结构,每个节点存储了数据库关键字以及数据的地址。查询时只需要顺序遍历,比如说第501个name是abc,502不是,name...转载 2019-10-31 22:26:29 · 345 阅读 · 0 评论 -
drop、truncate和delete的区别
Delete1 可以作用于table view2 是DML(data maintain language)语言,使用时用commit手动提交,会退时使用rowback3 删除表中的一条数据时,会记录在redo和undo日志表中,以便重做和回退4 可以使用where5 不会初始化自增字段6 会触发触发器TRUNCATE1 只能作用于table,不能作用于有外键关联的表,而应该使用带...转载 2019-11-05 22:01:15 · 85 阅读 · 0 评论 -
mysql中的redolog undolog
1 redolog保证了事务的一致性,持久性。在mysql服务启动时,就会给redolog分配一块连续的存储空间,各个事务共享这块存储空间,各个事务的redolog日志根据语句的执行数据,通过顺序io的方式交替存入。如果mysql宕机了,redolog可以将mysql数据库恢复到宕机前的一个状态,未提交的事务,可以根据策略手动选择提交或者回退。2 undolog保证了事务的原子性,它记录了数据操...转载 2019-11-08 20:22:08 · 270 阅读 · 0 评论 -
关系数据库 范式
1 关系数据库的理解定义的角度:建立在关系数据库模型基础上的数据库借助于集合代数等概念和方法来处理数据库中的数据是一个被组织成一组拥有正式描述性的表格,该表格作用的实质是装载着数据项的特殊收集体。通俗的讲:在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库。实现了一些什么样的功能?用户定义的完整性是对数据表中 字段属性的约束,通常指数据的...转载 2019-11-09 22:49:52 · 73 阅读 · 0 评论