自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LE博客

技术积累与分享

  • 博客(9)
  • 收藏
  • 关注

原创 mysql 加锁原理

首先我们知道InnoDB默认支持的是行锁,但这并不代表InnoDB不支持表锁。必须明白这一点在InnoDB中并不是在数据行上加锁,而是在对应的索引上加锁,这一点和oracle并不同,后者是在数据行上加锁的。这种实现的特点是:只有通过索引条件检索数据的时候加的是行锁,否则加表锁!假如检索条件没有用到索引,也是加表锁!...

2019-08-31 19:38:19 271

原创 07 | 行锁功过:怎么减少行锁对性能的影响?

MyISAM:支持全局锁、表锁InnerDB:支持全局锁、表锁、行锁、支持事务接下来我们介绍下InnerDB的行锁:两阶段锁:在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放,而是要等到事务结束时才释放。这个就是两阶段锁协议。那就是,如果你的事务中需要锁多个行,要把最可能造成锁冲突、最可能影响并发度的锁尽量往后放死锁和死锁检测当出现死锁以后,有两种策略...

2019-08-31 12:27:44 197

原创 06 | 全局锁和表锁 :给表加个字段怎么有这么多阻碍?

小结:根据加锁规则分为三类:全局锁(mysql实例加锁,整个数据库实例)表锁行锁:innodb引擎才支持MDL:读也是需要加锁的备份场景(全局锁):1、Flush tables with read lock (FTWRL),只读,一般在不支持可重复读这种隔离级别的2、借助innerDB场景的可重复读的隔离级别,我们还可以借助视图 MVCC,也就是innerDB的可重复读来进行备份。...

2019-08-31 11:24:11 127

原创 栈的实现

栈: 先进后出实现方式一般可以通过两种方式解决第一种是数组第二种是链表我们看下如何通过数组实现/** * 通过数组实现栈 */public class StackByArr { public static void main(String[] args) { Stack stack = new Stack(5); stack.push("1...

2019-08-25 17:58:15 111

原创 二叉树遍历 前序、中序、后序、层序

二叉树的遍历,可以使用递归方式解决,非常简单,只要考虑怎么解决 A B C的遍历就好了前序遍历 : A B C中序遍历 : B A C后序遍历 : B C A下面我们进入实战:如图:前序遍历 : A | B | D | E | C | F | G |中序遍历 : D | B | E | A | F | C | G |后序遍历 : D | E | B | F | G | C | A...

2019-08-25 17:16:46 154

原创 单链表的链表反转

/** * 单链表的链表反转 * node1 -> node2 -> node3 * node3 -> node2 -> node1 */public class LinkInversion { public static void main(String[] args) { Node node1 = new Node("node1");...

2019-08-25 15:31:43 89

原创 二分查找

二分查找应用于已经排好序没有重复值得查找 private static int[] arr = {1, 2, 3, 4, 5, 6, 7}; public static int get(int key) { int lo = 0; int hi = arr.length - 1; while (lo <= hi) { //...

2019-08-25 12:14:35 142

原创 快速排序

/** * 快速排序 * 快排的思路:取一个临界值一半取第一个就好,然后找出比key小的放到左边,大的放到右边;然后递归此逻辑,知道最小粒度 * 取数组中的一个值key(一般取第一个值就好) * 从后半部分向前扫描 取出第一个小于key的值 lo,放到key的位置上 * 从前半部分向后扫描 取出第一个大于key的值 hi,放到刚才的lo上 * @date: Created in 201...

2019-08-25 11:41:02 82

原创 冒泡排序

public class BubblingSort { private static int[] arr = new int[]{5, 2, 1, 6, 7, 0, 12, 2, 55, 12}; /** * 冒泡排序 * 逻辑: 复杂度为O(n2) ,每次循环两两对比, i>i+1的情况进行交换,这样一来每次都能找到第N大的值(后面就会有序了,下次再...

2019-08-25 09:58:06 761

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除