- 博客(10)
- 收藏
- 关注
原创 mysql中的锁类型(全)
mysql中的锁类型行锁记录锁:标准的行锁间隙锁:在RR这个级别下,为了避免幻读,引入了间隙锁,他锁定的是记录范围,不包含记录本身,也就是不允许在范围内插入数据。第一步把teacher表的id的4改成8事务一:begin;select * from teacher where id < 6 lock in share mode;事务二:begin;insert into teacher values (5,'zhangnan','T888888');发现卡住了,因为他
2022-04-13 17:31:40
890
原创 令牌桶和漏牌桶
参考:https://www.cnblogs.com/xuwc/p/9123078.html令牌桶令牌桶算法(Token Bucket):是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。**算法思路:**令牌桶会以一定的速率生产令牌,直至装满。请求过来时先获取令牌,获取到的请求后台会接收并处理。没有获取到的请求会被抛弃,并返回429错误。漏牌桶漏桶算法(Le
2022-03-23 20:14:19
2747
原创 try-catch-finally-return的执行优先级
try-catch-finally-return的执行优先级有异常时try { System.out.println(1); int i = 1/0; return 1;} catch (Exception e) { e.printStackTrace(); System.out.println(2); return 2;} finally { System.out.println(3); return 3;}return 4;
2021-12-17 20:58:54
330
原创 synchronized锁升级过程
synchronized锁升级过程线程在获取锁的时候,实际上就是获得一个监视器对象(monitor) ,monitor 可以认为是一个同步对象,所有的Java 对象是天生携带monitor。synchronized同步块使用了monitorenter和monitorexit指令实现同步,这两个指令,本质上都是对一个对象的监视器(monitor)进行获取,这个过程是【排他】的,也就是说同一时刻只能有一个线程获取到由synchronized所保护对象的监视器。接下来我们从对象头信息中发现一些锁的信息对
2021-12-14 09:56:44
310
原创 HashMap的源码解读
HashMap 的一种数据集合类型,它存储的是键值对,jdk1.8前后hashmap是有所改变的,1.8之前用的数据结构是数组 + 链表,1.8之后用的数据结构是数组 + 链表 + 红黑树,红黑树的引入是为了提高它的查询效率,链表的查询效率是O(n),而红黑树的查询效率是O(logn),1.8之前如果发生哈希碰撞采用的是头插法,1.8之后发生哈希碰撞采用尾插法,因为头插法在多线程的情况下会出现循环链表。由于HashMap线程不安全的,一般在多线程的情况下一般采用线程安全的 CurrentHashMap
2021-11-03 10:36:00
162
1
原创 十大排序方法
十大排序方法1、冒泡排序/** * @author Honey * @date 2021/8/8 */public class BubbleSort { public static void main(String[] args) { int[] a = {1, 6, 5, 3, 13, 7, 11, 9}; // 接下来三个方法任选一个来进行排序,要注掉两个 sort(a); sortArray(a,a.length-
2021-09-20 23:47:12
210
2
原创 mysql的存储引擎
mysql的存储引擎一、MySQL常用存储引擎及特点1、InnoDB存储引擎从MySQL5.5版本之后,MySQL的默认内置存储引擎已经是InnoDB了,他的主要特点有:(1)支持事务。默认的事务隔离级别为可重复度,通过MVCC(并发版本控制)来实现的。(2)使用的锁粒度为行级锁,可以支持更高的并发;(3)支持外键;(4)在InnoDB中存在着缓冲管理,通过缓冲池,将索引和数据全部缓存起来,加快查询的速度;(5)对于InnoDB类型的表,其数据的物理组织形式是聚簇表。所有的数据按照主键来组织
2021-07-30 15:08:42
105
原创 mysql锁机制
mysql锁机制数据库锁机制简单来说,就是数据库为了保证数据的一致性,使各种共享资源在被访问时变得有序而设计的一种规则。MysQL的锁机制比较简单最著的特点是不同的存储引擎支持不同的锁机制。 InoDB支持行锁,(有时也会升级为表锁)MyISAM只支持表锁。表锁的特点就是开销小、加锁快,不会出现死锁。锁粒度大,发生锁冲突的概率小,并发度相对低。行锁的特点就是开销大、加锁慢,会出现死锁。锁粒度小,发生锁冲突的概率高,并发度搞。1、InnoDB行锁的种类(1)记录锁不加索引,两个事务修改同一
2021-07-30 14:46:25
119
原创 事务的总结
事务的总结1、事务简介在mysql中只有使用InnoDB数据库引擎的的数据库才支持事务。事务是用来管理可以改变数据库数据的语句,增删改的语句。2、事务的四大特性(1)原子性一个事物的所有操作,要么全部完成,要么全部不完成。如果一个事物在执行过程中发生错误,钙食物会被回滚到事务开始状态。(2)一致性写入数据库的数据必须完全符合所有的预设规则。(3)隔离性数据库允许多个事务同时对其数据进行读写和修改的能力,他可以防止多个事务并发执行时有交叉执行而导致数据不一致。有四个级别,见下面。(4
2021-07-30 11:40:06
106
原创 mysql索引总结
mysql索引总结一、mysql数据结构选型在数据库文件存储在磁盘时,为了提升查询效率,一定会选用合适的数据结构进行文件的存储1、数组和链表肯定不能选,这种最基本的数据结构,各自的劣势太明显。2、hash类似与咱们的hashmap, 速度快,但是只要是hash就会产生无序的问题,所以不常用但也有。3、树看来看去也就是树这种结构比较合理了。二叉查找树可以吗?在查找一个数据时,二叉树是读取根节点,小则从左找,大则从右找,每次读取一个数据。没有办法合理的利用局部性原理与磁盘预读,IO次数太多
2021-07-29 21:37:35
252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人