mysql索引原理 发表于 2019-02-17 | 分类于 数据库 | | 热度: ℃ 字数统计: 2,249 | 阅读时长 ≈ 8 在使用mysql索引的时候,会很好奇为什么一般都使用B+树作为索引,而不使用哈希表。非主键字段是怎么创建索引的,其索引内容是什么,怎么和对应行关联?为什么必须存在主键,为什么主键最好是自增的? 带着这些问题,我们先了解一下B+树是什么,以及mysql的最左前缀原理。 B-tree和B+treeb树和 ... 阅读全文 »
java多线程 发表于 2019-02-02 | 分类于 java | | 热度: ℃ 字数统计: 2,535 | 阅读时长 ≈ 9 java多线程编程进程与线程 进程是资源分配的最小单位,线程是程序执行的最小单位。 进程:进程是程序执行的一个实例,系统进行资源分配和调度的一个独立单位,是担当资源分配的最小单位; 线程:线程是进程的一个执行流,是CPU调度和分派的基本单位。一个线程就是一个独立的栈结构,每个进程至少有一个线程。 ... 阅读全文 »
docker的maven插件使用 发表于 2019-01-06 | 分类于 插件 | | 热度: ℃ 字数统计: 1,167 | 阅读时长 ≈ 6 搭建docker私有仓库创建私有仓库 拉取仓库镜像 docker pull registry 启动仓库镜像 docker run ‐di ‐‐name=registry ‐p 5000:5000 registry 修改daemon.json,让docker信任私有仓库地址 vi /etc/doc ... 阅读全文 »
杂记文档 发表于 2018-10-15 | 分类于 杂记 | | 热度: ℃ 字数统计: 19,590 | 阅读时长 ≈ 71 缓存队列相关1.为什么使用mq?mq的优点?解耦,异步,削峰(可以限流发送或接收) 2.mq的缺点有哪些?系统可用性降低(mq挂掉),数据丢失问题,一致性问题,消息顺序问题,消息积压,消息重复问题等需要考虑,导致系统复杂性增加。 3.主流MQ框架的对比 特性 ActiveMQ RabbitMQ ... 阅读全文 »
jvm内存排查 发表于 2018-10-01 | 分类于 java | | 热度: ℃ 字数统计: 3,370 | 阅读时长 ≈ 13 一般线上JVM问题属于比较紧急的情况,需要立即保留现场信息,并及时回复生产。 保留现场 打印堆栈信息 jstack java进程id dump堆内存 jmap -dump:format=b,file=./jvmdump java进程id 打印至少30秒的jvm垃圾回收情况 jstat -gcu ... 阅读全文 »
java并发编程 发表于 2018-09-15 | 分类于 并发编程 | | 热度: ℃ 字数统计: 7,142 | 阅读时长 ≈ 25 并发编程的挑战上下文切换 CPU会给每个线程分配时间片用于分配给各个线程执行和占用资源,所以在多线程执行的情况下需要对执行上下文不停切换,会消耗CPU资源,所以在某些特定情况下单线程会比多线程消耗时间少。我们要尽可能的减少上下文切换。 无锁并发编程;多线程的锁竞争会引起上下文切换,处理数 ... 阅读全文 »
哈希表_散列表 发表于 2018-08-20 | 分类于 数据结构 | | 热度: ℃ 字数统计: 2,157 | 阅读时长 ≈ 8 哈希表介绍哈希表(也称散列表,hash table),是根据键值直接访问其对应的数据存储位置的一种数据结构。若使用数组或者链表来存储元素则在比较某个元素时,数组或链表需要循环进行比较,而通过哈希表只需要计算出对应的哈希位置取出对应的值进行比较或判断在否。 其有以下几种特性: 若关键字为k,则其值存 ... 阅读全文 »
java锁相关 发表于 2018-08-16 | 分类于 java | | 热度: ℃ 字数统计: 1,730 | 阅读时长 ≈ 6 在并发系统中常常需要对某些业务资源进行加锁操作,解决一些因并发操作导致的数据不一致,以及读到脏数据问题。 加锁的目的本质上是对资源的一种操作控制,防止其数据或状态出现不可控的变化。 java中对于锁的支持使用volatilejava提供了volatile关键字,在多个处理器中可以立即读到最新的值,即 ... 阅读全文 »