2018年8月29日

(转)JVM各种内存溢出是否产生dump

摘要: 对于java的内存溢出,如果配置-XX:+HeapDumpOnOutOfMemoryError,很明确的知道堆内存溢出时会生成dump文件。但永久代内存溢出不明确是否会生成,今天来做一个实验: 对于java的内存溢出,如果配置-XX:+HeapDumpOnOutOfMemoryError,很明确的知 阅读全文

posted @ 2018-08-29 23:26 hadley2012 阅读(436) 评论(0) 推荐(0) 编辑

数据库缓存的几种方式

摘要: NoSQL专题 数据库缓存的几种方式 引入缓存可以提高性能,但是数据会存在两份,一份在数据库中,一份在缓存中,如果更新其中任何一份会引起数据的不一致,数据的完整性被破坏了,因此,同步数据库和缓存的这两份数据就非常重要。本文介绍常见的缓存更新的同步策略。 预留缓存Cache-aside 应用代码能够手 阅读全文

posted @ 2018-08-29 23:15 hadley2012 阅读(16819) 评论(0) 推荐(0) 编辑

使用jprofiler分析dump文件一个实例

摘要: 1.. jstact 命令先分析一下 1.. jstact 命令先分析一下 1.. jstact 命令先分析一下 1.. jstact 命令先分析一下 一次fullgc之后 old 老年代使用比例 只降低2% 应该有什么大的对象常驻内存。 2.可以使用jmap 命令查看对象大小 (这里后面使用jpr 阅读全文

posted @ 2018-08-29 22:51 hadley2012 阅读(2847) 评论(0) 推荐(0) 编辑

2018年8月27日

Hibernate之一级缓存和二级缓存

摘要: 1:Hibernate的一级缓存: 1.1:使用一级缓存的目的是为了减少对数据库的访问次数,从而提升hibernate的执行效率;(当执行一次查询操作的时候,执行第二次查询操作,先检查缓存中是否有数据,如果有数据就不查询数据库,直接从缓存中获取数据); 1.2:Hibernate中的一级缓存,也叫做 阅读全文

posted @ 2018-08-27 22:26 hadley2012 阅读(182) 评论(0) 推荐(0) 编辑

2018年8月25日

最佳实践 缓存穿透,瞬间并发,缓存雪崩的解决方法

摘要: 一.缓存穿透: 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决办法: 1.布隆过滤 对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。还有最常见的则是采 阅读全文

posted @ 2018-08-25 20:50 hadley2012 阅读(2617) 评论(0) 推荐(0) 编辑

缓存与数据库一致性之三:缓存穿透、缓存雪崩、key重建方案

摘要: 一、缓存穿透预防及优化 缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,但是出于容错的考虑,如果从存储层查不到数据则不写入缓存层,如图 11-3 所示整个过程分为如下 3 步: 缓存层不命中 存储层不命中,所以不将空结果写回缓存 返回空结果 缓存穿透将导致不存在的数据每次请求都要到存 阅读全文

posted @ 2018-08-25 18:01 hadley2012 阅读(927) 评论(0) 推荐(0) 编辑

2018年8月18日

Mysql中的联合索引、前缀索引、覆盖索引

摘要: 索引 索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 联合索引 又名复合索引,由两个或多个列的索引。它规定了mysql从左到右地使用索引字段,对字段的顺序有一定要求。一个查询可以只使用索引中的一部分,更准确地说是最 阅读全文

posted @ 2018-08-18 21:33 hadley2012 阅读(501) 评论(0) 推荐(0) 编辑

分布式缓存技术memcached学习系列(四)—— 一致性hash算法原理

摘要: 文章主目录 分布式一致性hash算法简介 分布式一致性hash算法使用背景 环形hash空间 映射key到环形hash空间 映射server节点到hash空间 映射key到server节点 添加server节点 删除server节点 虚拟节点的引入 节点变化数据分流的问题 一致性hash算法与取模算 阅读全文

posted @ 2018-08-18 20:33 hadley2012 阅读(187) 评论(0) 推荐(0) 编辑

(转)减少oracle sql回表次数 提高SQL查询性能

摘要: 要写出高效的SQL,那么必须必须得清楚SQL执行路径,介绍如何提高SQL性能的文章很多,这里不再赘述,本人来谈谈如何从 减少SQL回表次数 来提高查询性能,因为回表将导致扫描更多的数据块。 我们大家都知道,数据库表中数据存储都是以块为单位,称为数据块;表中每行数据都有唯一的地址标志ROWID。 举个 阅读全文

posted @ 2018-08-18 17:51 hadley2012 阅读(218) 评论(0) 推荐(0) 编辑

HashMap与ConcurrentHashMap的区别

摘要: 从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。 从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。 从JDK1.2起,就有了HashMap,正如前一篇文章所 阅读全文

posted @ 2018-08-18 15:21 hadley2012 阅读(289) 评论(0) 推荐(0) 编辑

导航