言简意骇,帮助大家理解 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之 ...
分类:
其他好文 时间:
2018-03-12 11:03:19
阅读次数:
130
一、架构 MySQL的架构如下: 二、锁 MySQL的锁主要分为读锁和写锁。读锁是共享的,在同一时间可以有多个客户端对相同的资源执行读操作。写锁是排他的,会阻止其他的写锁和读锁的操作。 三、事务 事务是指一个独立的工作单元。这一个工作单元要么全部执行,要么全部不执行。如果执行到一半时某条语句未能正确 ...
分类:
数据库 时间:
2018-03-07 17:35:39
阅读次数:
164
ReentrantReadWriteLock会使用两把锁来解决问题,一个读锁,一个写锁 ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。然后就是总结这个锁机制的特性了: (a).重入方面其内部的Wr ...
分类:
其他好文 时间:
2018-03-06 17:17:28
阅读次数:
156
ReadWriteLock管理一组锁,一个是只读的锁,一个是写锁。读锁可以在没有写锁的时候被多个线程同时持有,写锁是独占的。 所有读写锁的实现必须确保写操作对读操作的内存影响。换句话说,一个获得了读锁的线程必须能看到前一个释放的写锁所更新的内容。 读写锁比互斥锁允许对于共享数据更大程度的并发。每次只 ...
分类:
其他好文 时间:
2018-03-01 17:29:06
阅读次数:
149
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op ...
分类:
编程语言 时间:
2018-03-01 17:10:01
阅读次数:
249
一、分为两种:公平和非公平线程 a b c d e公平:按顺序执行:a,b,d,e 读锁 c 写锁 1.a,b 执行 c 堵塞,d,e 等待 2.a,b执行结束 c获取锁 d,e堵塞等待 3.c执行结束 d开始执行,然后在唤醒e非公平: 1,2步骤相同 3,c执行结束的时候,新来个线程 f读锁,在d ...
分类:
其他好文 时间:
2018-02-07 12:06:41
阅读次数:
162
MySQLdump一致性快照备份流程版本:5.7.17-logMySQLCommunityServer(GPL)参数:--master-data=2--single-transactionFLUSH/!40101LOCAL/TABLES刷盘,将内存的数据fsync到磁盘上面FLUSHTABLESWITHREADLOCK设置全局读锁,禁止全局写入write和read俩者的区别在于就是设置read之后
分类:
数据库 时间:
2018-02-06 15:00:35
阅读次数:
201
一、背景 熟悉MySQL数据库的朋友们都知道,查询数据常见模式有三种: 1. select ... :快照读,不加锁 2. select ... in share mode:当前读,加读锁 3. select ... for update:当前读,加写锁 从技术层面理解三种方式的应用场景其实并不困难 ...
分类:
数据库 时间:
2018-02-06 13:03:50
阅读次数:
199
mysql-binlog日志恢复数据库 mysqlbinlog常见的选项有以下几个:--start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间--stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样--start-pos ...
分类:
数据库 时间:
2018-01-29 11:46:08
阅读次数:
277
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。它指的是对数据 ...
分类:
其他好文 时间:
2018-01-23 10:49:59
阅读次数:
154