2019年12月29日

后端程序员必备:索引失效的十大杂症

摘要: 背景 最近生产爆出一条慢sql,原因是用了or和!=,导致索引失效。于是,总结了索引失效的十大杂症,希望对大家有帮助,加油。 一、查询条件包含or,可能导致索引失效 新建一个user表,它有一个普通索引userId,结构如下: CREATE TABLE ( int(11) NOT NULL AUTO 阅读全文

posted @ 2019-12-29 20:29 Jay_huaxiao 阅读(982) 评论(2) 推荐(4) 编辑

写代码有这些想法,同事才不会认为你是复制粘贴程序员

摘要: 前言 最近做完12月份版本需求,有一些思考不够深入的代码,因此写一下总结,希望大家日常写代码多点思考,多点总结,加油!同时哪里有不对的,也望指出。 一、复杂的逻辑条件,是否可以调整顺序,让程序更高效呢。 假设业务需求是这样:会员,第一次登陆时,需要发一条感谢短信。如果没有经过思考,代码直接这样写了 阅读全文

posted @ 2019-12-29 09:21 Jay_huaxiao 阅读(2080) 评论(9) 推荐(13) 编辑

2019年9月7日

面试加分项-HashMap源码中这些常量的设计目的

摘要: 前言 之前周会技术分享,一位同事讲解了HashMap的源码,涉及到一些常量设计的目的,本文将谈谈这些常量为何这样设计,希望大家有所收获。 HashMap默认初始化大小为什么是1 [] tab; Node p; int n, i; if ((tab = table) == null || (n = t 阅读全文

posted @ 2019-09-07 17:34 Jay_huaxiao 阅读(845) 评论(0) 推荐(2) 编辑

2019年9月4日

并发环境下,先操作数据库还是先操作缓存?

摘要: 前言 在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。 缓存维护方案一 假设有一写(线程A)一读(线程B)操作, 先操作缓存,在操作数据库 。,如下流程图所示: 1)线程A发起一个写操作,第一步 阅读全文

posted @ 2019-09-04 23:10 Jay_huaxiao 阅读(4852) 评论(13) 推荐(5) 编辑

Mysql死锁如何排查:insert on duplicate死锁一次排查分析过程

摘要: 前言 遇到Mysql死锁问题,我们应该怎么排查分析呢?之前线上出现一个insert on duplicate死锁问题,本文将基于这个死锁问题,分享排查分析过程,希望对大家有帮助。 死锁案发还原 表结构: CREATE TABLE ( int(11) NOT NULL AUTO_INCREMENT, 阅读全文

posted @ 2019-09-04 09:08 Jay_huaxiao 阅读(10302) 评论(3) 推荐(5) 编辑

2019年9月3日

面试必备:Java线程池解析

摘要: 前言 掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解。如果有哪里理解不正确,非常希望大家指出,接下来大家一起分析学习吧。 经典面试题 面试问题1:Java的线程池说一下,各个参数的 阅读全文

posted @ 2019-09-03 17:41 Jay_huaxiao 阅读(12151) 评论(4) 推荐(9) 编辑

导航