![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
啊狸的Java
7年java开发经验,对dubbo,spring,springmvc,springboot,springCloud,mybatis等框架使用多年,并了解部分源码,熟悉设计模式,了解jvm、多线程、nio等,对tomcat优化,mysql优化有深入了解
展开
-
kafka的一些概念
kafkakafka消费组:一个消费组里包含一个或者多个消费者,一个patition只能被一个消费组里的一个消费组消费消费者消费patition时是根据offerset来顺序消费的,这个offerset在旧版里是保存在zookeeper,在新版是保存在kafka内部当消费组内的consumer启动时,第一个启动的consumer会成为消费组的coordinator消费组里的消费者会跟消费组里的coordinator发送hearthbeat,以保持consumer自己在线当消费组内的consum原创 2022-03-14 16:12:48 · 2775 阅读 · 0 评论 -
Mysql一条select语句的执行过程
mysql的执行流程:query Cache:是缓存sql结果集的内存缓冲区,是将sql的hash值作为key,结果集作为value存放,目的是提高查询效率,但如果query cache中关联的表的数据或结构发生变化,则query cache中关于这张表的数据都会被清空,这个过程会占用服务器的资源,如果表的数据量大,则占的资源也会多,mysql在version8中已经去掉这个功能。详细介绍SQL解析器:sql解析器 会将sql按照关键字打碎成一段段的语句,比如 select * from a这条原创 2021-05-06 14:07:30 · 290 阅读 · 0 评论 -
MySql的缓存技术,query_cache
mysql执行流程query-cache -> 解析器 -> 预处理器 -> 优化器 -> 执行计划 -> 执行器 -> 返回结果query-cache原理当mysql接受到一条sql时,query-cache处理器会对这条sql做hash计算得到一个hash值,然后将这个hash值去query-cache容器去匹配,如果匹配的上,则直接返回匹配的结果,如果匹配不上,则会将hash值 和 执行器执行sql的结果存进query-cache容器里,以及这条sql相关的信原创 2021-04-27 12:27:08 · 460 阅读 · 0 评论 -
CountDownLatch秒杀实现
CountDownLatch是什么?CountDownLatch是一个发令枪,并发控制器,可以阻塞线程,使一个线程等待其他线程执行完再去执行原理:CountDownLatch是JUC包中的一员,将阻塞里的线程都封装成一个Node节点 加入到AQS队列中,使用的是一个共享锁当调用countDownLatch.await()方法时,都会将当前线程加入到这个AQS队列中,AQS队列的作用是存放需要获取锁的线程,利用的是一个state状态 去管理锁的状态的秒杀小例子 //使用AtomicInte原创 2021-02-04 10:50:41 · 315 阅读 · 1 评论 -
数据结构-树结构
数据结构:树:二叉树:1、最大的度为22、二叉树的子树有左右之分,次序不能颠倒斜树:1、只有左子树的二叉树叫左斜树,只有右子树的二叉树叫右斜树2、其实斜树就是线性表结构满二叉树:1、所有的叶子节点都在最下面一层2、非叶子节点的度一定是23、同样深度的二叉树,满二叉树的结点数最多,叶子结点也是最多完全二叉树:1、叶子结点只能出现在最下两层2、最下层叶子在左部是连续的,也就...原创 2019-02-28 23:09:53 · 1010 阅读 · 0 评论 -
MySQL为什么要选择B+树来作为索引的数据结构
二叉树的结构出发 首先从二叉树的结构来说,二叉树的结构是从它的第一个元素开始定根节点,往后插入的数据会跟根节点的值做比较,如果值比根节点的值大则会放到右边,成为右子节点,反之,则插入到左边,成为左子节点结论 从上面二叉树的结构可以得到以下结论:如果第一个插入的数据的值比较小,往后插入的数据的值都比第一个插入的数据的值要大,则二叉树会转变成为一颗斜树,斜树的时间复杂度为O(n),效率极低...原创 2019-03-01 15:56:37 · 1108 阅读 · 0 评论