自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySQL的BufferPool是个啥?

BufferPool概述望词知义,BufferPool即缓冲池。缓冲池作用无外乎减少DB/IO的查询压力,加快查询速度。MySQL InnoDB引擎中,数据基于磁盘进行存储,并按照页的方式进行管理。BufferPool的出现就是为了缓存CPU和磁盘之间的速度,提升数据库性能。缓冲池其实类似于Redis数据库,基于内存实现数据缓冲。当进行select操作时,如果缓冲池中没有相应的数据,则需要进行一次随机磁盘io查询,把相应的数据加载到缓冲池BufferPool中,如果下次还是访问同样的数据,直接从缓冲池中拿

2022-04-16 19:05:06 357

原创 MySQL索引

创建高性能MySQL索引工作半年有余,越来越觉得基础知识的重要性。今年上半年给自己立个flag:读完《高性能MySQL》和《DDIA》两本书。当然,读完并不是主要目的,还是要有所想有所思的。趁着今天读完索引这一章节,总结下。MySQL索引有哪些?他们的优缺点又有哪些呢?B树索引B树的B代表的含义是Balance(平衡)而非Binary(二分),它是由二叉树 —> 平衡二叉树 —> 平衡多叉树 —> B树不断进化而来,B树适合于磁盘查询等外部操作,多叉树查找降低了B树的高度,大多数数

2022-02-27 23:01:43 443

原创 Golang Channel

Channel解析1. Channel源码分析1.1 Channel数据结构type hchan struct { qcount uint // channel的元素数量 dataqsiz uint // channel循环队列长度 buf unsafe.Pointer // 指向循环队列的指针 elemsize uint16 // 元素大小 closed uint32 // channel是否关闭 0

2021-10-17 20:53:08 1066

原创 2021-08-28

etcd结构体之Inflights1. Inflights?官方:Inflights limits the number of MsgApp (represented by the largest indexcontained within) sent to followers but not yet acknowledged by them. Callersuse Full() to check whether more messages can be sent, call Add() when

2021-08-28 21:06:23 99

原创 Redis持久化

Redis持久化1. RDB持久化Redis是一个基于内存的键值对数据库,由于Redis是内存数据库,它将自己的数据库状态存储在内存里,所以一旦服务器进程退出,保存在数据库中的数据也将消失。为了解决这个问题,Redis提供了RDB持久化功能,这个功能将Redis内存中的数据保存在磁盘里,避免数据的丢失。RDB持久化既可以手动执行,也可以根据服务器配置选项定期执行,它可以将某个时间节点内的数据保存到一个RDB文件中。1.1 RDB文件的创建和载入有两个Redis命令可以用于生成RDB文件,一个是SA

2020-08-11 18:01:00 142 1

原创 找出数据t库中行数多于10000的表,并按行数从高到底排列

找出数据t库中行数多于10000的表,并按行数从高到底排列:select table_rows, table_name from tables where table_rows >= 100000 order by table_rows desc;

2020-07-31 09:54:32 240

原创 ON DUPLICATE KEY UPDATE含义与用法

含义有则更新,无则插入;用法INSERT INTO table_name(column_1, column_2) VALUES (value_1, value_2)ON DUPLICATE KEY UPDATE column_1 = value_3, column_2 = value_4

2020-07-15 16:36:46 290

原创 leetcode位操作例题

位操作位操作(Bit Manipulation)是程序设计中对位模式或二进制数的一元和二元操作。常用的位操作有:消除数字 n 的二进制表示中的最后一个1n & (n - 1)获得数字n的最低非0位n & (-n)常见的移位操作1. 数组中只出现一次的数字例题描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。思路: 利用位操作中的异或操作来完成,异或操作:相同为0,不同为1,所以数组中所有相同的数经过

2020-06-03 23:21:56 162

原创 Redis数据结构之跳跃表

Redis数据结构跳跃表跳跃表是一种有序数据结构,它通过在每个节点中维系多个指向其他节点的指针来达到快速访问节点的目的。跳跃表支持平均查找O(logn)、最坏O(N)复杂度的节点查找,还可以通过顺序性来批量处理节点。Redis使用跳跃表来作为有序集合的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合的元素成员是比较长的字符串时,Redis就会采用跳跃表来实现有序集合。跳跃表的实现Redis跳跃表是由redis.h/zskiplistNode和redis.h/zskiplist两

2020-05-09 18:50:34 203

原创 同步队列器AQS简介

AQS介绍AbstractQueuedSynchronizer又称为队列同步器(后面简称AQS),它是用来构建锁或其他同步组件的基础框架.1. AQS工作原理概要AQS的核心思想是,若当前的共享资源空闲,则设置为当前的进程获得该共享资源,同时将该共享资源设置为锁状态。若当前的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS使用CLH队列队列锁实现的,即将暂时...

2020-03-15 13:55:17 162

转载 Java线程池

线程池使用线程的好处降低资源消耗,通过重复利用已经创建的线程来降低创建线程所带来的资源消耗;提高响应速度,当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。ThreadPoolExector类简单介绍篇ThreadPoolExector构造函...

2020-03-14 17:32:40 70

原创 事务的基本概念以及隔离级别

事务的基本概念以及隔离级别1. 事务的基本概念1.1 事务所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的单位。例如,在关系型数据库中,一个事务可以是一条SQL语句、一组SQL语句或者整个程序。在SQL中,定义事务的语句一般有三条:BEGIN TRANSACTIONCOMMITROLLBACK事务通常是以BEGIN TRANSACTION开...

2020-02-12 11:03:23 214

原创 Java设计模式之单例模式

Java设计模式之单例模式饿汉模式public class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; ...

2020-02-05 12:35:01 70

转载 HashMap源码分析

Java容器HashMap摘要HashMap是Java中使用频率最高的用于映射(键值对)处理的数据类型,在JDK1.8之后对HashMap做了底层优化,例如引入了红黑树的数据结构以及对数据扩容做了优化。简介Java为数据结构的映射定义了Java.util.Map接口,此接口主要由四种常用的实现类,包括HashMap,HashTable,LinkedHashMap和TreeMap。它们之间...

2020-02-01 17:05:11 68

原创 LinkedList源码解读

LinkedList源码分析1.LinkedList简介1.1 概述LinkedList本质上是一个双向链表,列表中的每个节点都包含了对前一个指针和后一个指针的引用,适用于增删频繁但是查找不频繁的场景,线程不安全,适用于单线程。1.2 继承关系继承关系如下图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OOqDWdzm-1578131489305)...

2020-01-04 17:56:05 87

原创 ArrayList源码解读

ArrayList源码分析1. ArrayList简介1.1 概述容量可以动态增长,基于数组实现的List,底层是Object[]类型的数组;线程不安全,数组元素允许为空;它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。1.2 继承关系继承关系如图:[外链图片转存失败,源站可...

2020-01-02 16:53:04 92

Redis 设计与实现.mobi

Redis 设计与实现.mobi

2021-12-13

空空如也

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

TA关注的人

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