mysql
文章平均质量分 68
everyD_struggle
任重而道远
展开
-
当事务遇上分布式锁
innodb 可重复读遇上分布式锁原创 2022-07-25 00:13:51 · 2529 阅读 · 1 评论 -
MySql - 如何确定一个字段适合构建索引?
基数某个列唯一键的数量叫作基数。某个列唯一键的数量叫作基数。当查询结果是返回表中5%以内的数据时,应该走索引;当查询结果返回的是超过表中5%的数据时,应该走全表扫描。选择性当查询结果是返回表中5%以内的数据时,应该走索引;当查询结果返回的是超过表中5%的数据时,应该走全表扫描。当一个列选择性大于20%,说明该列的数据分布就比较均衡了。当某个列基数很低,该列数据分布就会不均衡。数据分布不均衡会导致在查询该列的时候,要么走全表扫描,要么走索引扫描,这个时候很容易走错执行计划。回表概念:当对一个列原创 2022-02-08 21:55:32 · 741 阅读 · 0 评论 -
MYSQL分表DDL操作(存储过程)
drop procedure if exists useCursor; CREATE PROCEDURE useCursor() BEGIN DECLARE oneAddr varchar(36) default ''; DECLARE allAddr varchar(40) default ''; DECLARE done INT DEFAULT 0; DECLARE curl CURSOR FOR select table_name from原创 2021-07-01 16:36:20 · 300 阅读 · 0 评论 -
Mysql进阶-InnoDB事务
文章目录一、为什么要有事务?二、ACID属性三、事务的实现1. redo2. undo四、事务隔离级别五、分布式事务一、为什么要有事务?事务会把数据库从一种一致状态转换为另一种一致状态。在数据库提交工作时,可以确保要么所有修改都已经保存了,要么所有修改都不保存。二、ACID属性字母属性介绍A(Atomicity)原子性原子性指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行成功,才算整个事务成功。事务中任何一个SQL语句执行失败,已经执行成功的SQL语原创 2020-08-29 15:57:29 · 520 阅读 · 0 评论 -
MySql进阶-间隙锁(gap-key)
可参考参考《InnoDB存储引擎》tips:SELECT…FOR UPDATE对读取的行记录加一个X锁,其他事务不能对已锁定的行加上任何锁。SELECT…LOCK IN SHARE MODE对读取的行记录加一个S锁,其他事务可以向被锁定的行加S锁,但是如果加X锁,则会被阻塞。使用这两种一致性锁定读的办法注意开启事务,提交事务,来锁定与释放锁。Innodb锁算法Record Lock:单个行记录上的锁Gap Lock:间隙锁,锁定一个范围,但不包含记录本身Next-Key Lock∶G.原创 2020-08-26 21:47:49 · 10151 阅读 · 4 评论 -
MySql进阶-存储引擎
文章目录1. 存储引擎概述2. 各种存储引擎特性3. InnoDB**事务控制****外键约束****存储方式**4. MyISAM不支持事务文件存储方式5. MEMORY6. MERGE7. 存储引擎的选择1. 存储引擎概述和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎。存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 。...原创 2020-04-24 13:04:58 · 288 阅读 · 0 评论 -
MySql进阶-MVCC(多版本并发控制)
Multi-Version Concurrency Control1. 什么是MVCC?可以认为是行级锁的一个变种,但是在很多情况下避免了加锁操作,因此开销更低?那么怎么实现不加锁就能获得锁的效果呢?有过锁相关的知识的可以想到:乐观锁2. MVCC的实现MVCC的实现,是通过保存数据在某个时间点的快照来实现的也就是说,不管事务执行多久,每个事务看到的数据都是一致的,根据事务开始的...原创 2020-04-24 12:52:31 · 208 阅读 · 0 评论 -
MySql进阶-锁问题
文章目录1. 锁分类2. Mysql 锁3. MyISAM 表锁查看锁的争用情况4. InnoDB 行锁4.1 事务及其ACID属性4.2 发事务处理带来的问题4.3 事务隔离级别4.4 InnoDB 的行锁模式4.5 行锁演示4.6 无索引行锁升级为表锁4.7 间隙锁危害4.8 InnoDB 行锁争用情况1. 锁分类从对数据操作的粒度分 :1) 表锁:操作时,会锁定整个表。2) 行锁:操...原创 2020-04-23 17:42:54 · 268 阅读 · 0 评论 -
MySql进阶-优化SQL
书籍为深入浅出MySql 第18章sql优化步骤文章目录1. 大批量插入数据1) 主键顺序插入2) 关闭唯一性校验3) 手动提交事务2. 优化insert语句3. 优化order by语句4. 优化group by 语句5. 优化嵌套查询7. 优化OR条件8. 优化分页查询9.使用SQL提示1. 大批量插入数据当使用load 命令导入数据的时候,适当的设置可以提高导入的效率。1) ...原创 2020-04-23 17:01:04 · 325 阅读 · 0 评论 -
MySql进阶-索引&&利用索引优化SQL
书籍参考: 高性能mysql文章目录1. 索引概述2. 索引优点3. 索引分类4. 索引语法5. 索引设计原则todo1. 索引概述MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就...原创 2020-04-22 20:12:13 · 443 阅读 · 0 评论