随笔分类 - 数据库 MySQL
摘要:MVCC 即多版本并发控制 多版本的意思就是数据库中同时存在多个版本的数据,并不是整个数据库的多个版本,而是某一条记录的多个版本同时存在,在某个事务对其进行操作的时候,需要查看这一条记录的隐藏列事务版本id,比对事务id并根据事物隔离级别去判断读取哪个版本的数据。 MVCC主要是提高并发性能,不用加
阅读全文
摘要:行锁 走索引进行行锁 表锁 解决:对更新字段建立索引(唯一),当走索引只会进行行锁; 当一条更新语句没有走索引,可能就会进行表锁,此时其他事物无论更新和插入都会等待 update f set name=20 where num=2; 死锁 MySQL有三种锁的级别:页级、表级、行级。 表级锁:开销小
阅读全文
摘要:基本命令 #声明变量 DECLARE a INT; #对变量赋值 SET a = 5; 基本使用 创建存储过程 DROP PROCEDURE if exists p8; CREATE PROCEDURE p8 () BEGIN DECLARE a INT; DECLARE b INT; DECLAR
阅读全文
摘要:如何使用慢查询快速定位执行慢的 SQL? 慢查询可以帮我们找到执行慢的 SQL 查看慢查询是否已经开启 show variables like '%slow_query_log'; 我们能看到slow_query_log=OFF,也就是说慢查询日志此时是关上的。我们可以把慢查询日志打开,注意设置变量
阅读全文
摘要:insert 如果我们有需求是需要进行加锁,才能进行在进行insert,如果在java层次来进行加锁,会导致效率很低,我们此时就可以将之前在java层次的判断放到mysql语句中,如果条件成立才进行插入数据; 如果插入数据后,需要进行update,那么我们需要先update,在进行insert(in
阅读全文
摘要:事务有四个特性:ACID 原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。 一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不
阅读全文
摘要:参考:https://mp.weixin.qq.com/s?__biz=MzI5MzYzMDAwNw==&mid=2247487130&idx=2&sn=7d384ef9ca47b933e801fdd2459b6b2f&chksm=ec6e77c2db19fed4a3ed3a0625c1f31867
阅读全文
摘要:下载:https://dev.mysql.com/downloads/workbench/ 版本 8.0.16 简单使用: 1、创建数据库 创建表 创建表中的字段 对已经创建好的表进行修改 表中的信息 执行SQL语句 导出数据库
阅读全文
摘要:IFNULL SELECT a.`id`, a.`name`, b.`id`, IFNULL(b.`name`,'/') //如果查询为null,可以设置一个默认值 FROM tb_content_category AS a LEFT JOIN tb_content_category AS b ON
阅读全文
摘要:表内容操作: 1、增 insert into 表 (列名,列名...) values (值,值,值...) insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...) insert into 表 (列名,列名...) select (列名,列名...)
阅读全文
摘要:查看各个表占用空间 select table_schema as '数据库', table_name as '表名', table_rows as '记录数', truncate(data_length/1024/1024, 2) as '数据容量(MB)', truncate(index_leng
阅读全文

浙公网安备 33010602011771号