mysql索引以及查询优化 mysql 官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。本文主要针对InnoDB进行讲解。 1. MySQL 如何使用索引索引用于快速查找具有特定列值的行。如果没有索引,MySQL 必须从第一行开始,然后通读整个表以查找相关行。桌子越大,这个成本就越高。如果该表具有相关列的索引,MySQL 可以快速确定要在 2021-06-11 msql 索引
mysql事务隔离级别及实现原理 1. Mysql事务MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的。 数据事务是只一组数据操作的执行,在事务内操作要么全部成功或失败。 2. 事务的四大特性(ACID) (ACID) 指的是在数据库事务正确执行的四个基本要素的缩写。 特性 描述 原子性(Atomicity) 1. 原子性比较好理解,事务中的一切操作,要么全部执行成功要么全部失败 2021-06-10 事务 mysql
Java 二分查找插入排序 二分(折半)插入排序是一种在直接插入排序算法上进行小改动的排序算法。其与直接排序算法最大的区别在于查找插入位置时使用的是二分查找的方式,在速度上有一定提升。 1. 原理解析 总共有N个元素,当插入第i个元素时,对前面的 0~i-1 个元素进行折半,先跟他们中间的那个元素比,如果小,那么再对前半折半 否则对后半进行折半,知道左 2021-06-04 Java 算法
Java Volatile 关键字 Java 语言中的 volatile 关键字可以被看作是一种程度较轻的 synchronized ;跟 synchronized 相比 volatile 使用起来简单方便,编码较少。但是也仅仅只有 synchronized 的部分功能。通过下文,让我们更加理解其意义。合理使用 volatile 关键字,从而减少不必要的系统开销。 锁提供了两种主要特性: 互斥(mutual exclus 2021-06-04 Java volatile
ElasticSearch 集群的工作原理 说说 Elasticsearch 存储原理,相信有不少人都会关心数据存储在ES中的存储容量。 1. 读写架构 2. 写入过程 客户端选择一个node发送请求过去,当前node会去找对应的主分片(primary shard) 的 node 如果主分片不在当前节点上,就将请求转发给主分片的 node。 主分片node在接收到请求document,进行数据写入。然后将数据同步到repli 2021-06-04 es
Shell脚本部署jar包 Linux 下部署 jar的脚本,以及一些采用的设置参数。 1. 目录包"脚本" "配置" "包" "日志" bin conf lib logo "给启动权限" chmod a+x startup.sh "查看端口是否可用" n 2021-06-04 jar部署 linux
深入理解 synchronized 原理 Synchronized 是一种JVM锁,大部分人都只是会使用 Synchronized 关键子,在方法上加入 Synchronized 就能对共享变量进行线程安全的使用,确没有了解 Synchronized 大部分真正含义,如,Synchronized 锁的级别,锁的范围(使用不同的对象,锁的范围不同)。希望下文对各位有所帮助。 1. Synchronized使用1.1. 修饰实例方法 2021-06-04 Java 锁
Jvm 配置及优化 Java 虚拟机有自己完善的硬件架构, 如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 Java 虚拟机上运行的目标代码 (字节码), 就可以在多种平台上不加修改地运行。JVM是JAVA世界的核心,了解它有助于我们更好调试,调优和开发程序。 1. 命令1.1. 查看 java pid项目jps 1.2. 收集内存使用基本 2021-06-04 Java Jvm
Java HashMap原理以及常见的面试题 叙述 HashMap 原理这里以代码为例,本文还回分析一些HashMap在面试中遇到的一些问题以及解答。 1. 先了解几点重要知识1.1. HashMap的组成 JDK1.7 数组+列表(Entry)分散存储在一个数组。 JDK1.8 数组+列表+红黑树,(Entry)分散存储在一个数组。JDK1.8中在 HashMap 中引入了红黑树的概念。 1.2. 扩容因子:0.7 2021-06-04 Java HashMap
Java OOM定位处理 本文针对处理 OOM 的定位问题,查询以及解决问题。 1. 常见的几种方式1.1. GC overhead limit exceededJava.lang.OutOfMemeoryError:GC overhead limit exceeded 即程序在垃圾回收上花费了98%的时间,却收集不回2%的空间,通常这样的异常伴随着CPU的冲高。不同的垃圾回收器 OOM 的异常错误不同。 1 2021-06-04 Java OOM