MySQL
文章平均质量分 87
丁川
这个作者很懒,什么都没留下…
展开
-
事务隔离:为什么你改了我还看不见?
事务隔离:为什么你改了我还看不见?原创 2023-01-09 15:57:43 · 332 阅读 · 0 评论 -
MySQL场景分析:查询仅洗过西服和运动鞋的手机号
需求:需要查询仅洗过西服和运动鞋的手机号。原创 2022-08-17 13:43:33 · 154 阅读 · 0 评论 -
MySQL场景分析--按照班级查询,并统计各班级男、女的人数和总人数
现在有一张学生表,字段如下。请按照班级查询,并统计各班级男、女的人数和总人数。原创 2022-07-18 12:43:18 · 15813 阅读 · 2 评论 -
MySQL的存储引擎innoDB是怎么来保证事务的ACID特性?
如何实现ACID?前言最近在面试,有被问到,MySQL的InnoDB引擎是如何实现事务的,又或者说是如何实现ACID这几个特性的,当时没有答好,所以自己总结出来,记录一下。事务的四大特性事务的四大特性ACID分别是,A-原子性(Atomicity),C-一致性(Consistency),I-隔离性(Isolation),D-持久性(Durability)。一致性是最终目的,原子性、隔离...原创 2022-03-08 21:17:00 · 417 阅读 · 0 评论 -
MySQL 存储引擎的索引为什么使用B+树?
MySQL 存储引擎的索引为什么使用B+树?为什么 MySQL 使用 B+树 - 知乎 (zhihu.com)首先需要澄清的一点是,MySQL 跟 B+ 树没有直接的关系,真正与 B+ 树有关系的是 MySQL 的默认存储引擎 InnoDB,MySQL 中存储引擎的主要作用是负责数据的存储和提取(从我们的磁盘中),除了 InnoDB 之外,MySQL 中也支持 MyISAM 作为表的底层存储...原创 2022-03-06 12:56:00 · 616 阅读 · 0 评论 -
MySQL笔记(一)SQL基础
SQL数据定义语言(Data Definition Language,DDL)用来创建或删除数据库以及表等对象,主要包含以下几种命令:DROP:删除数据库和表等对象CREATE:创建数据库和表等对象ALTER:修改数据库和表等对象的结构数据操作语言(Data Manipulation Language,DML)用来变更表中的记录,主要包含以下几种命令:SELECT:查询表中的数据INSERT:向表中插入新数据UPDATE:更新表中的数据DELETE:删除表中的数据数据查询语言原创 2022-03-26 15:34:40 · 2766 阅读 · 0 评论 -
innoDB产生死锁
并发时常见的死锁及解决方法死锁是并发系统中常见的问题,同样也会出现在数据库MySQL的并发读写请求场景中。当两个及以上的事务,双方都在等待对方释放已经持有的锁或因为加锁顺序不一致造成循环等待锁资源,就会出现“死锁”。常见的报错信息为 Deadlock found when trying to get lock...。举例来说 A 事务持有 X1 锁 ,申请 X2 锁,B事务持有 X2 锁,申...原创 2022-03-08 19:57:00 · 640 阅读 · 0 评论 -
MySQL锁
锁锁机制事务与锁是不同的。事务具有ACID( 原子性、一致性、隔离性和持久性),锁是用于解决隔离性的一种机制。事务的隔离级别通过锁的机制来实现。为了保证数据并发访问时的一致性和有效性,任何一个数据库都存在锁机制。锁机制的优劣直接影响到数据库的并发处理能力和系统性能,所以锁机制也就成为了各种数据库的核心技术之一。锁机制是为了解决数据库的并发控制问题而产生的。如在同一时刻,客户端对同一个表做...原创 2022-03-08 19:54:00 · 3904 阅读 · 0 评论 -
MySQL索引
索引索引(Index)是什么?为什么要使用索引?索引是提高数据库性能的重要方式,用来快速找出数据表中的特定记录。如果在表中查询的列有一个索引,MySQL 能快速到达一个位置去搜寻数据,而不必查看所有数据。一个表可以创建多个索引,一个索引可以包含一个或者多个字段。从表面上看,索引类似于书的目录,在没有目录的情况下,要从书中查找某项内容就必须阅读全文,而有了目录之后,通过页码就可以很快定位到...原创 2022-03-08 19:30:00 · 112 阅读 · 0 评论 -
MySQL事务
事务当多个用户访问同一数据时,一个用户在更改数据的过程中可能有其它用户同时发起更改请求,为保证数据的一致性状态,MySQL 引入了事务。在银行业务中,有一条记账原则,即有借有贷,借贷相等。为了保证这种原则,每发生一笔银行业务,就必须确保会计账目上借方科目和贷方科目至少各记一笔,并且这两笔账要么同时成功,要么同时失败。如果出现只记录了借方科目,或者只记录了贷方科目的情况,就违反了记账原则...原创 2022-03-08 16:00:00 · 419 阅读 · 0 评论 -
什么是 MySQL 的 回表 ?怎么减少回表的次数?
什么是 MySQL 的“回表”?怎么减少回表的次数?索引结构要搞明白这个问题,需要大家首先明白 MySQL 中索引存储的数据结构。这个其实很多小伙伴可能也都听说过,B+Tree 嘛!B+Tree 是什么?那你得先明白什么是 B-Tree,来看如下一张图:前面是 B-Tree,后面是 B+Tree,两者的区别在于:B-Tree 中,所有节点都会带有指向具体记录的指针;B+Tree 中...原创 2022-03-06 18:59:00 · 2503 阅读 · 2 评论 -
向MySQL发送一个请求的时候,MySQL到底做了些什么?
向MySQL发送一个请求的时候,MySQL到底做了些什么?为什么要知道MySQL的执行过程呢?是因为我们要对sql语句进行优化。这个是很要必要的。客户端发送一条查询给服务器。服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。服务器端进行SQL解析,预处理,再由优化器生成对应的执行计划。MySQL根据优化器生成的执行计划,调用存储引擎的API执行查询。返回结果给客户端。对关键的动作进行分析:客户端/服务端通信协议MySQL客户端/服务端通信协议是原创 2022-02-26 23:33:42 · 255 阅读 · 0 评论 -
SQL查询语句先执行select?
SQL查询语句先执行SELECT?SELECT 语句的完整语法,如下:SELECTDISTINCT <select_list>FROM <left_table><join_type> JOIN <right_table>ON <join_condition>WHERE <where_condition>GROUP BY <group_by_list>HAVING <having_condition&g原创 2022-02-26 23:31:30 · 578 阅读 · 0 评论