Scott's world.

Scott's world.

从来如此,便对吗

MySQL-行锁与死锁笔记
MySQL-行锁与死锁笔记MySQL的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如MyISAM引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB是支持行锁的,这也是MyISAM被InnoDB替代的重要原因之一。 innodb行级锁是通过锁索引记录实现的,如果更新的列没建索引是会锁住整个表的。 两阶段锁我们先从这张图出发 实际上在事务A拿到id=1的行锁后在并没有事务提交的情况下,事务B需要id=1的行锁,因此在事务A还没有释放行锁的时候事务B处于阻塞的状态,...
C语言-数组
C语言-数组什么是数组数组是一个变量,由数据类型相同的一组元素组成 变量:内存中的一块空间 数组:内存中的一串连续的空间 注意连续,数组申请的空间是连续的,数组的深入理解就是从连续这里开始延伸的 数组的结构和基本要素有以下几点 标识符:数组的名称,用于区分不同的数组 数组元素:向数组中存放的数据 元素下标:对数组元素进行编号 元素类型:数组元素的数据类型 注意 数组只有一个名称,即标识符 元素下标标明了元素在数组中的位置,从0开始 数组中的每个元素都可以通过下标来访问 数组长度固定不变,避免数组越界 数组里面每个元素的数据类型都是一致的 数组的使用 语法 datatyp...
C语言-循环(二)
C语言-循环(二)For循环 语法: 1234for(表达式1;表达式2;表达式3){ 语句;} 表达式1:通常是为循环变量赋初值,比如 i=0 或 cnt=20 表达式2:循环条件,是否继续执行循环,比如 i=5 或 cnt==20 表达式3:更新循环变量的值,比如:i++ 或 cnt+=2 或 count— 表达式123都可以省略,但’;’是绝对不能省略的 1234const int N = 20; //常量int i;for(i=0;i<N;i++) printf("再别康桥\n"); 使用for循环例一 循环输入6个月的工资,计算...
MySQL 全局锁与表锁笔记
MySQL-全局锁与表锁笔记 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL的锁大致可分为全局锁,表级锁和行锁三类 全局锁全局锁就是对整个数据库实例加锁 MySQL提供了一个加全局读锁的方法,命令是Flush tables with read lock简称FTWRL 使用FTWRL会让整个库处于读状态,之后其他线程的数据更新语句,数据定义语句,更新类事务的提交语句就会被阻塞 全局锁的典型应用场景就是全库逻辑备份 在使用全局锁会让整个库都只读会出...
MySQL-索引笔记(下)
MySQL-索引笔记(下)在上面一个笔记中学习了InnoDB索引的数据结构模型和索引维护的相关知识 那么这一篇继续来深入了解索引 我们先来看这一个问题: 在下面这个表T中,如果我执行 1select * from T where k between 3 and 5 需要执行几次树的搜索操作,会扫描多少行? 12345678mysql> create table T (ID int primary key,k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT '',index k(k))engine=I...
MySQL-索引笔记(上)
MySQL-索引笔记(上)在MySQL中索引的地位可谓是重要之重,如果没有了索引,那么MySQL的查询效率无法想象 一句话来说为什么会出现MySQL的索引: 提高数据查询的效率 索引的概念其实非常好懂,当你查询一个东西的时候,一般是先找到这个东西的索引,通过索引查找它的位置,类似于书中的目录,城市的街道名等 索引的常见模型实现索引的方式有非常多的方法,所以就引入了索引模型的概念 下面就介绍三种最常见的数据结构来实现索引模型 哈希表 有序数组 搜索树 哈希表在日常开发中用哈希表来实现索引应该是最常见的方法 哈希表结构也非常的简单,即 key-value 哈希表查找数据,只需要key,便...
C语言-循环(一)
C语言-循环(一)循环 复读机 低级的复读机 12345printf("复读,第1\n");printf("复读,第2\n");printf("复读,第3\n");printf("复读,第4\n");printf("复读,第5\n"); 高级的复读机 12for(int i=0;i<5;i++) printf("复读,第%d\n"); 如果需要打印1000万句呢 低级的复读机 所以,有了循环,你复读起来就更加美好了呢! 先来介绍简单的循环 while循环 基本语法 1234while(循环条件){ 循环操作语句 } 循环三要...
C语言-变量及数据类型
C语言-变量及数据类型变量及数据类型变量定义变量是计算机中一块特定的内存空间 由一个或多个连续的字节组成 我们知道计算机处理的数据都是放在内存中处理,而若想要引用变量,那么就要找到它内存空间的地址,而空间里就存放着变量的值 不同数据存入具有不同内存地址的空间,相互独立 命名 为什么要命名呢? 因为我们可以通过变量名来简单快速地找到在内存中存储的数据 即变量名就相当于变量的标识符,也相当于它内存空间的地 那么如何命名呢? 每个语言的命名规则都有它自己的一套规则,而现在我们来介绍C语言中变量的命名规则 C语言规定变量名(标示符)只能由字母、数字和下划线3种字符组成,且第一个字...
MySQL 事务隔离笔记
MySQL 事务隔离笔记说起事务大家都知道为什么需要有事务这一个东西 简单来说,事务就是要保证一组数据库操作,不成功便成仁即要么全部成功要么全部失败 在MySQL中事务支持是在引擎层实现的 而我们知道MySQL是支持多引擎的,但是并不是所有的引擎都支持事务,比如MyISAM引擎就不支持事务,也难怪会被InnoDB取代的原因之一 那么我们便进入文章的主题 隔离性与隔离级别在讲事务隔离之前,我们首先要知道,事务的四大特性即ACID 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 而事务隔离就是其一的隔离性 当数...
avatar
Scott
L'enfer, c'est les autres
FRIENDS