自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (4)
  • 收藏
  • 关注

原创 性能调优之MySQL优化--覆盖索引对性能的提升测试

接上一篇文章,其实性能优化除了之前所列的那么多以外,对于MySQL也是需要优化的。之前有想过MySQL的优化,无非就是看看是否使用索引,把select * 改成需要的字段以减少内存使用等等,当时也就觉得这样足够了。不过最近在看了极客时间的《MySQL实战45讲》后才发现原来MySQL的优化还是有很多很多地方需要考虑。 先安利一下这个课程,强烈推荐大家都来看一看。它比较系统的讲了MySQL的原理,常见问题,调优手段等等,更有优质的评论与解答。不管是开发,运维还是DBA都值得一...

2021-01-15 00:12:17 280 1

原创 性能压测总结

最近公司上了一个大项目,在上线前进行了3周的全链路压测,总结了不少优化点,这里列举一些,以供大家参考 1、统一日志处理的aop拦截冗余 在拦截aop时pointCut配置,将controller和service层都做了切入,导致很多地方的日志造成了冗余打印,再加上重复的aop拦截也很耗时,最终移除所有的主动拦截,pointCut只...

2020-03-22 01:43:48 795

原创 踩了一个java中三目运算符的坑

前两天在开发中遇到了一个很诡异的NPE情况,最后发现是三目运算符的编译问题,这里记录一下。 简化后的代码如下:Map<String, Long> map = Maps.newHashMap();map.put("a", 123L);TmpCls cls = new TmpCls();cls.setPrice(ObjectUtils.isEm...

2020-03-08 15:27:46 769

原创 使用GuavaCache的一些姿势

最近写一个小项目,遇到一个高频查询功能,使用redis又有点浪费,就决定采用本地缓存来实现,于是就想到了一直很火的GuavaCache,这里对使用GuavaCache做一些小结。 (在查资料的过程中,发现springBoot 2.x版本中已经移除了GuavaCache的支持,改用了Caffeine,这个需要抽空看看了) 整合起来很简单,具体如下:...

2020-01-10 23:58:04 395

原创 简易SQL判别器

在之前工作的慢SQL排查中,发现有一种慢查是这样的,select * from tableName where 1=1,这个产生的原因相信大家都清楚,我在处理该类问题的时候,就想如何更好的避免这种问题,通过翻阅了PageHelper源码,以及MySQL的插件原理,写了一个简易的判别器,提供一个解决该问题的思路。 基本方法就是在执行sql的时候将其拦截,通过jsql...

2019-12-22 15:06:46 276

原创 通过PageHelper源码学习MyBatis插件的开发

最近工作中遇到了一些sql语句写法上的问题(具体的问题会在下一篇文章中说明),想了一些办法来解决总觉得太麻烦,后来想到了用mybatis的插件方式来实现,但是不太清楚插件的原理以及如何书写,正好项目中用到了pageHelper,并且在生产中也发现了pageHelper的一些性能问题,于是带着这两个目的,我研究了一下pageHelper的源码,加上大致百度了一下mybatis插件的写...

2019-09-16 02:42:28 202

原创 一次奇怪的mysql查询优化发现mysql查询优化器的bug

最近刚上线的一个sql出现了慢查,经过分析发现了一个很有意思的问题,具体表现为,select * from tablename where a=xx and b=xx and c=xxx and time<xxx order by time desc; 这条sql的查询很快的,在60ms以内,但是如果再最后加上了limit 10,查询就会要2s多。当这个慢查被运维拉出来的时候...

2019-08-19 00:17:41 270

原创 在lambda中使用外部变量的一些心得

随着java8的普及,越来越多的人开始使用lambda表达式。然后初学者们总会遇到一个奇怪的问题: Variable used in lambda expression should be final or effectively final 这个错的产生的原因是因为在lambda表达式中访问外部变量时,都不允许有修改变量的倾向,即 ...

2019-07-23 00:41:07 9918

原创 MQ面试相关知识总结

一、MQ用途 主要有3点:解耦、异步、削峰(限流)。 大致图形如下,其实就是在服务与服务之间增加了一个中间件,可以实现上面的三种用途。解耦:我们看到,服务A强依赖服务B和C,当服务B或者C挂掉后,会直接导致服务A的不可用,这显然不是我们所期望的。比如服务的最后一步是记录日志,但是该服务挂了,虽然日志服务和主流服务没有必然的业务联系,但是因为代码的耦合性过...

2019-03-17 18:26:35 417

原创 win10下安装MySQL8小结

按照网上的教程安装,发现有几步不太正确。就按照我改正后的步骤记录一下。1、下载MySQL,地址:https://dev.mysql.com/downloads/mysql/,下载Windows (x86, 64-bit), ZIP Archive这个即可2、解压文件,放置到自己指定的目录(并将文件夹重命名为MySQL,可不改),我这里是D:\IDE\MySQL3、配置环...

2019-03-06 12:14:32 742

原创 记录一次小型的java内存泄露问题排查过程

        前不久发现自己的微信小程序突然挂了,查询后台发现tomcat竟然被干掉了,赶忙将服务重新启动,先解决问题再说。        然后就该想想tomcat的进程为什么会被杀掉了。        在排除人为因素后,就只有内存不够的情况下被Linux主动杀掉了。用free -h命令查了一下,发现内存就剩下120多MB了。我的天,我可是买的4G内存啊,mysql+2个java项目+r...

2019-02-21 18:31:37 374

原创 JAVA并发编程中关于锁的小结

        最近在学习java的并发编程时,遇到了很多锁的概念,有很多其实都是同一个锁的多种叫法而已,或者是某种锁的一个功能。为了更好的梳理这块知识,这里做一个小结,将锁的概念进行区分。        先说目前我们所遇到的锁的名词,大致有如下这些:公平锁/非公平锁、可重入锁(递归锁)、独享锁/共享锁、互斥锁/读写锁、乐观锁/悲观锁、自旋锁、分段锁、分布式锁。公平锁/非公平锁    ...

2019-02-15 18:41:17 287

原创 WeakCache解析

        在搞懂了弱引用,以及弱引用hashmap以后,终于可以来看看WeakCache这个类是怎么缓存动态代理类的了。        先来个硬翻译,把这个类上面的注释,自己翻译了一遍。。。        它是一个具有二级缓存的弱引用类,一级缓存的key和value都是弱引用,二级缓存是强引用。其中key是根据入参直接传入的,二级缓存的key和value都是是根据一级缓存的key和v...

2019-01-28 18:54:21 740

原创 Java中的关于弱引用分析

        上一篇在研究动态代理的时候,遇到了WeakCache,研究了半天,才发现自己连java的强引用、弱引用都不了解,就决定先去研究这个东东,然后再去看WeakCache类。        Java中存在四种引用,分别是强引用,软引用,弱引用和虚引用(也就是幽灵引用)。其中虚引用在查了很多资料后,还是不太懂它的原理以及使用场景,所以这一点在以后能顿悟了再写吧。        先说...

2019-01-22 14:48:26 794

原创 JDK动态代理源码分析

        上一篇中,分析了静态代理和动态代理的区别,还留有一些问题,最核心的就是,为什么JDK动态代理必须要有一个接口,还有就是,定义一个InvocationHandler,并用Proxy.newProxyInstance调用,怎么就可以实现动态代理效果。        想要知道整个调用过程,就得深入源码去看了。先说一下,本来想一篇文章写完的,但是发现遇到了一个知识盲点:weakCach...

2019-01-21 15:53:39 278

原创 java静态代理与动态代理

        假设有一个User类,里面有一个获取用户信息的方法,接口和实现如下://接口定义public interface IUserService { void getUserInfo();}//接口实现public class UserService implements IUserService{ @Override public void getUserI...

2019-01-11 18:23:59 196

原创 layer弹出层自适应页面大小解决方案

        前两天在Vue中引入了Vue-layer插件,实现了弹出层效果。不过由于是在22寸屏下开发的,没多想,弹出层的area的长宽就设定的都是800px,效果还很好。结果那给用户看,他们是12寸的笔记本。弹出层直接撑爆了页面,无法关闭。。。        网上的解决方案大都是以下几种:            1、改成百分比形式。有bug,下面细说。            2、...

2018-12-27 16:48:17 20675

原创 Java序列化总结

昨天读到了Hollis的一篇关于序列化的文章,以及文章里所关联的之前几篇文章,让我对序列化有了一个比较深入的了解,所以在这里做个总结,加深理解。原文地址:https://mp.weixin.qq.com/s/5xcDDtsVYdgzUebF3_Mg4g。以下是总结,基本都是自己的理解,大白话。如有不对的地方,请指正。1、什么是java序列化,为什么要序列化。因为java对象是存活在...

2018-12-25 14:43:29 270

原创 利用nginx解决vue的跨域访问问题

        vue在开发中,可以通过自带的脚手架配置实现跨域访问,但是打包时不会将这部分配置文件载入,这样会导致上了生产环境出现跨域访问的问题。在网上查过一些解决跨域的问题,都没太搞明白,然后就想采用nginx将服务请求转发来实现,经过一天的摸索,终于搞定了。        最开始的的nginx配置如下:server { listen 80; ...

2018-09-26 17:29:22 13904

原创 伪元素before的坑--空格导致的错误

今天模拟bootstrap写面包屑导航,写完后发现hover上去的时候效果不对。如图:我的样式bootstrap的样式,可以看到鼠标移上去以后伪元素before也会带有hover效果。几乎照抄了bootstrap的代码,仍然是这样。看了下页面元素,二者果然不一样;从图中可以看到两个伪元素加的位置都不一样。上网查询无果,我甚至都不知道该怎么查这个问题。最后把bootstrap

2017-11-24 17:56:33 2215

pskill/exec/list

这三个命令找了好久啊,分别在三个地方找到的。这次打了个包,给大家个方便吧。

2008-11-05

css全程指南随书光盘

css全程指南的随书光盘,里面有不少实用的例子,滤镜那里不错,还有2个不错的全站实例。

2008-10-30

Linux命令大全 共316个命令

对初学linux的朋友帮助挺大!命令解释也比较详细。

2008-10-17

空空如也

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

TA关注的人

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