MyISAM 和 InnoDB 存储引擎的对比 锁粒度方面:由于锁粒度不同,InnoDB 比 MyISAM 支持更高的并发; InnoDB 的锁粒度为行锁、MyISAM 的锁粒度为表锁、行锁需要对每一行进行加锁,所以锁的开销更大, 但是能解决脏读和不可重复读的问题,相对来说也更容易发生死锁 可恢复性 ...
分类:
数据库 时间:
2020-05-28 21:44:47
阅读次数:
76
1.什么是死锁? 死锁是由于两个或以上的线程互相持有对方需要的资源,且都不释放占有的资源,导致这些线程处于等待状态,程序无法执行。 2.产生死锁的四个必要条件 1.互斥性:线程对资源的占有是排他性的,一个资源只能被一个线程占有,直到释放。 2.请求和保持条件:一个线程对请求被占有资源发生阻塞时,对已 ...
分类:
编程语言 时间:
2020-05-28 21:39:30
阅读次数:
87
死锁的概念 两个或两个以上的进程在执行过程中,因抢夺资源而造成的一种互相等待的现象,若无外力干涉,它们都无法继续推进,如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。 实现死锁 1 class HoldLockThread implemen ...
分类:
其他好文 时间:
2020-05-28 19:46:01
阅读次数:
54
一不小心就死锁了,怎么办? 在上一篇文章中,我们用 Account.class 作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,性能太差。 向现实世界要答案 我们试想在古代,没有信息化,账户的存在形式真的就是一个账本,而且每个账户都有一个账本, ...
分类:
编程语言 时间:
2020-05-28 00:50:02
阅读次数:
84
select ... lock in share mode //共享锁 select ... for update //排他锁 行锁的3种算法: record lock:单个行记录上的锁 gap lock:锁定范围,不锁定记录本身,只在RR里使用 next-key lock:锁定范围,并锁定记录本身 ...
分类:
数据库 时间:
2020-05-27 20:28:41
阅读次数:
93
错误日志 作用 从启动数据库开始,发生过的note、error、warning信息。 定位数据库问题:报错、异常(死锁)。 配置方法 默认配置 修改配置路径 二进制日志(bin_log) 作用 1、数据恢复 2、复制 配置方法 1、server_id = 大于0的值,如果是主从复制,各节点serve ...
分类:
数据库 时间:
2020-05-25 00:05:07
阅读次数:
275
使用zookeeper实现分布式锁是分布式锁的实现方式的一种,相对于redis的实现,zookeeper的显现能够实现锁的获得顺序,不出现死锁等特点,关于zookeeper分布式锁的实现原理大致总结如下: 客户端向zookeeper的某一个持久节点下注册临时有序节点 获取该父节点下的所有临时有序节点 ...
分类:
其他好文 时间:
2020-05-24 16:33:33
阅读次数:
43
什么是信道 信道是go协成之间的通信管道, 所有的信道都关联了一个类型, 信道只能运输这种类型的数据, 运输其他类型的数据会报错 chan T 表示 T 类型的信道。 信道的零值为 nil。信道的零值没有什么用,通常用 make 来定义信道。例如: a := make(chan int) 声明一个类 ...
分类:
编程语言 时间:
2020-05-23 11:17:06
阅读次数:
69
转自:http://blog.csdn.net/gooddaddy/archive/2009/03/27/4030468.aspx GetLastError()返回值列表:〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖 ...
分类:
其他好文 时间:
2020-05-22 21:14:51
阅读次数:
89
我的LeetCode:https://leetcode cn.com/u/ituring/ 我的LeetCode刷题源码[GitHub]:https://github.com/izhoujie/Algorithmcii LeetCode 210. 课程表 II 题目 现在你总共有 n 门课需要选,记 ...
分类:
其他好文 时间:
2020-05-22 19:40:15
阅读次数:
48