free命令缓存buff/cache 查看内存的命令:free 或者 top,其中使用free命令都可以看到信息 $ free -mh total used free shared buff/cache available Me
几个月之前,开始深入学习 MySQL 。说起数据库,并发控制是其中很重要的一部分。于是,就这样开起了 MySQL 锁的学习,随着学习的深入,发现想要更好的理解锁,需要了解 MySQL 事务,数据底层的存储方式,MySQL 的执行流程,特别是索引的选择等。 InnoDB 锁一览 先从 MySQL 官网
间隙锁(Gap Lock) 首先谈谈间隙锁是什么。 间隙锁是专门用于解决幻读这种问题的锁,它锁的了行与行之间的间隙,能够阻塞新插入的操作,同时间隙锁的引入也带来了一些新的问题,比如:降低并发度,可能导致死锁。 这里特别记录下读读不互斥,读写/写读/写写是互斥的,但是间隙锁之间是不冲突的,间隙锁会阻塞
在MySQL事务初识中,我们了解到不同的事务隔离级别会引发不同的问题,如在 RR 级别下会出现幻读。但如果将存储引擎选为 InnoDB ,在 RR 级别下,幻读的问题就会被解决。在这篇文章中,会先介绍什么是幻读、幻读会带来引起那些问题以及 InnoDB 解决幻读的思路。 实验环境:RR,MySQL
前言 因为现在使用的MySQL默认存储引擎是Innodb,所以本篇文章重点讲述Innodb下的索引,顺带简单讲述其他引擎。希望小伙伴们能通过这片文章对MySQL的索引有更加清晰的认识,废话不多说,我们开始吧。 索引介绍 首先,我们先带着一些问题来看接下来的内容。 索引是个什么东西? 我们可以创建
日常开发,运维中,经常会出现误删数据的情况。误删数据的类型大致可分为以下几类: 使用 delete 误删行 使用 drop table 或 truncate table 误删表 使用 drop database 语句误删数据库 使用 rm 命令误删整个 MySQL 实例 不同的情况,都会有其优
现在随着各种数据库框架的盛行,在提高效率的同时也让我们忽略了很多底层的连接过程,这篇文章是对 SQL 连接过程梳理,并涉及到了现在常用的 SQL 标准。 其实标准就是在不同的时间,制定的一些写法或规范。 从 SQL 标准说起 在编写 SQL 语句前,需要先了解在不同版本的规范,因为随着版本的变化,在
为什么要有锁? 我们都是知道,数据库中锁的设计是解决多用户同时访问共享资源时的并发问题。在访问共享资源时,锁定义了用户访问的规则。根据加锁的范围,MySQL 中的锁可大致分成全局锁,表级锁和行锁三类。在本篇文章中,会依次介绍三种类型的锁。在阅读本篇文章后,应该掌握如下的内容: 为什么要在备份时使用
我们知道在 RR 级别下,对于一个事务来说,读到的值应该是相同的,但有没有想过为什么会这样,它是如何实现的?会不会有一些特殊的情况存在?本篇文章会详细的讲解 RR 级别下事务被隔离的原理。在阅读后应该了解如下的内容: 了解 MySQL 中的两种视图 了解 RR 级别下,如何实现的事务隔离 了解什么
MySQL 中的事务? 对 MySQL 来说,事务通常是一组包含对数据库操作的集合。在执行时,只有在该组内的事务都执行成功,这个事务才算执行成功,否则就算失败。MySQL 中,事务支持是在引擎层实现的,像 MySQL 原生的 MyISAM 引擎就不支持事务,这也是被 InooDB 取代的重要原因。
什么是视图? 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。 视图是干什么用的? 通过视图,可以展现基表的部分数据 视图数据来自定义视图的查询中使用的表,使用视图动态生成 基表:用来创建视图的表叫做基表 为什么要使用视图? 因为
group_concat函数有长度限制 #查找当前数据库长度 show variables like 'group_concat_max_len' #设置当前session的group_concat长度,其他session连接不受影响 SET SESSION group_con
下面将主查询的表称为外表;子查询的表称为内表。exists 与 in 的区别如下: 子查询使用 exists,会先进行主查询,将查询到的每行数据循环带入子查询校验是否存在,过滤出整体的返回数据;子查询使用 in,会先进行子查询获取结果集,然后主查询匹配子查询的结果集,返回数据 外表内表相对大小情况
假设t_user表中,user_id字段的数据类型为varchar MySQL传参字段与DB字段数据类型不一致 select * from t_user where merchant_id = 10086; //可能会查出多条数据 select * from t_user where merch
本文介绍MySQL与Redis缓存的同步的两种方案 方案1:通过MySQL自动同步刷新Redis,MySQL触发器+UDF函数实现 方案2:解析MySQL的binlog实现,将数据库中的数据同步到Redis 方案1(UDF) 场景分析:当我们对MySQL数据库进行数据操作时,同时将相应的数据同