自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(219)
  • 收藏
  • 关注

原创 mybatis plus 常用方法

/创建分页实体/创建查询条件实体://进行查询://查询数据//页数//总的条数。

2022-11-23 16:21:10 489 1

原创 PDCA方法论

按照上面的意思,即先制定计划,然后实施计划,再检查实施的结果,再把结果进行分析,看看是有有改善的地方,然后再次制定计划。再按照上面的流程继续走,最终把这件做到你自己无法找出问题来。PDCA即包含4种意思,PLAN(计划),DO(做),CHECK(检查),ACTION(改善)。这几个是组合有什么含义呢?如果一个人不安与现状或者上某个事情需要改进,可以根据这4步循序去做?我们先理解这急个步骤先。但是如何去执行上面的步骤呢?

2022-09-19 10:12:41 1239

转载 你知道几种延迟队列的实现方案?

在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别1、 定时任务有明确的触发时间,延时任务没有 2、 定时任务有执行周期,而延时任务在某事件触发后一段时间内执行,没有执行周期 3、 定时任务一般执行的是批处理操作是多个任务,而延时任务一般是单个任务下面,我们以判断订单是否

2022-04-29 09:04:13 483

转载 MySQL 百万级数据,怎么做分页查询?说说思路

方法1: 直接使用数据库提供的SQL语句 方法2: 建立主键或唯一索引, 利用索引(假设每页10条) 方法3: 基于索引再排序 方法4: 基于索引使用prepare 方法6: 利用"子查询/连接+索引"快速定位元组的位置,然后再读取元组. 测试实验 方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/..

2022-04-29 09:01:54 1307

转载 分页场景(limit, offset)为什么会慢?

从一个问题说起五年前发现分页场景下,mysql请求速度非常慢。数据量只有10w的情况下,select xx from 单机大概2,3秒。我就问我导师为什么,他反问“索引场景,mysql中获得第n大的数,时间复杂度是多少?”答案的追寻确认场景假设status上面有索引。select * from table where status = xx limit 10 offset 10000。会非常慢。数据量不大的情况就有几秒延迟。小白作答瞎猜了个log(N),心想找一个节点不就是log(N

2022-04-29 08:59:33 558

原创 MAC 安装 brew 报 Warning: /opt/homebrew/bin is not in your PATH.

根据报错命令,设置环境变量:export PATH=/opt/homebrew/bin:$PATH。(我的报错是/opt/homebrew/bin这个没有,所以我添加这个,不要直接复制这条命令) sudo vim .bash_profile source .bash_profile 重新执行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/in...

2022-04-15 15:49:40 9038

转载 常见的SQL面试题:经典50例

SQL基础知识整理 select 查询结果,如:[学号,平均成绩:组函数avg(成绩)] from 从哪张表中查找数据,如:[涉及到成绩:成绩表score] where 查询条件,如:[b.课程号='0003' and b.成绩>80] group by 分组,如:[每个学生的平均:按学号分组](oracle,SQL server中出现在select子句后的非分组函数,必须出现在group by子句后出现),MySQL中可以不用 having 对分组结..

2022-02-27 10:12:22 6223 2

转载 说一说事务注解 @Transactional 失效的几种场景及解决办法

Transactional失效场景介绍第一种 Transactional注解标注方法修饰符为非public时,@Transactional注解将会不起作用。例如以下代码。定义一个错误的@Transactional标注实现,修饰一个默认访问符的方法/***@authorzhoujy**/@ComponentpublicclassTestServiceImpl{@ResourceTestMappertestMapper;@Transa...

2022-02-27 08:48:30 249

转载 索引失效的场景有哪些?索引何时会失效?

blog.csdn.net/bless2015/article/details/84134361虽然你这列上建了索引,查询条件也是索引列,但最终执行计划没有走它的索引。下面是引起这种问题的几个关键点。列与列对比某个表中,有两列(id和c_id)都建了单独索引,下面这种查询条件不会走索引select*fromtestwhereid=c_id;这种情况会被认为还不如走全表扫描。存在NULL值条件我们在设计数据库表时,应该尽力避免NULL值出现,如果非要不可避免的要出现N...

2022-02-27 08:37:44 1045

转载 超经典的 25 道 MyBatis 面试题

什么是 Mybatis? MyBatis 的优点 MyBatis 框架的缺点 MyBatis 框架适用场合 MyBatis 与 Hibernate 有哪些不同? #{}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? Mapper 接口的工作原理是什么?Mapper 接口里的方法,参数不同时,方法能重载吗? Mybatis 是如何进行分页的?分页插件的..

2022-02-26 09:10:34 195

转载 面试官:MySQL 唯一索引为什么会导致死锁?

唯一性索引unique影响唯一性索引表创建DROPTABLEIFEXISTS`sc`;CREATETABLE`sc`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(200)CHARACTERSETutf8DEFAULTNULL,`class`varchar(200)CHARACTERSETutf8DEFAULTNULL,`score...

2022-02-26 08:59:56 622

转载 动图演示:如何彻底理解红黑树?

作者:linzworldcnblogs.com/linzworld/p/13720477.html前言本文主要讲解下最近一直听到的红黑树,看看究竟是什么神仙鬼怪。二叉树满足以下两个条件的树就是二叉树: 本身是有序树(若将树中每个结点的各子树看成是从左到右有次序的(即不能互换),则称该树为有序树(Ordered Tree)); 树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2; 简单地理解,二叉树(Binary tree)是每个节点最多只有两个分支(即不存

2022-02-26 08:56:22 176

转载 如何从 100 亿 URL 中找出相同的 URL?

题目描述给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。解答思路每个 URL 占 64B,那么 50 亿个 URL 占用的空间大小约为 320GB。5, 000, 000, 000 _ 64B ≈ 5GB _ 64 = 320GB由于内存大小只有 4G,因此,我们不可能一次性把所有 URL 加载到内存中处理。对于这种类型的题目,一般采用分治策略,即:把一个文件中的 URL 按照某个特征划分为多.

2022-02-26 08:51:25 402

转载 TCP协议面试常备

作者:神三元原文:juejin.im/post/5e527c58e51d4526c654bf41先亮出这篇文章的思维导图TCP 作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。001. 能不能说一说 TCP 和 UDP 的区别?首先概括一下基本的区别:TCP是一个面向连接的、可靠的、基于字节流的传输层协议。而UDP是一个面向无连接的传输层协议。(就这么简单,其它TCP的特...

2022-02-26 08:46:54 138

转载 如何保障消息100%投递成功、消息幂等性?

一、前言我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等。引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用。如上图:(1)订单服务投递消息给MQ中间件 (2)物流服务监听MQ中间件消息,从而进行消费我们这篇文章讨论一下,如何保障订单服务把消息成功投递给MQ中间件,以RabbitMQ举例。二、分析问题小伙伴们对此会有些疑问,订单服务发起消息服务,返回成功不就成功了吗?如下面的伪代码:上面代码中,一般发送消息就是这么写的..

2022-02-21 14:05:56 119

转载 Java分布式面试题集合,挺全乎儿的~

分布式分为分布式缓存(Redis)、分布式锁(Redis 或 Zookeeper)、分布式服务(Dubbo 或 SpringCloud)、分布式服务协调(Zookeeper)、分布式消息队列(Kafka 、RabbitMq)、分布式 Session 、分布式事务、分布式搜索(Elasticsearch)等。不可能所有分布式内容都熟悉,一定要在某个领域有所专长。分布式理论问:分布式有哪些理论?CAP 、BASE。分布式 CAP 理论,任何一个分布式系统都无法同时满足 Consistency(一致性)、

2022-02-21 14:04:35 446

转载 面试必杀技:Spring循环依赖居然还有人讲不清楚?

前言Spring如何解决的循环依赖,是近两年流行起来的一道Java面试题。其实笔者本人对这类框架源码题还是持一定的怀疑态度的。如果笔者作为面试官,可能会问一些诸如“如果注入的属性为null,你会从哪几个方向去排查”这些场景题。那么既然写了这篇文章,闲话少说,发车看看Spring是如何解决的循环依赖,以及带大家看清循环依赖的本质是什么。正文通常来说,如果问Spring内部如何解决循环依赖,一定是默认的单例Bean中,属性互相引用的场景。比如几个Bean之间的互相引用:img

2022-02-21 13:53:07 125

转载 如何干掉恶心的 SQL 注入?

简介文章主要内容包括: Java 持久层技术/框架简单介绍 不同场景/框架下易导致 SQL 注入的写法 如何避免和修复 SQL 注入 JDBC介绍 全称 Java Database Connectivity 是 Java 访问数据库的 API,不依赖于特定数据库 ( database-independent ) 所有 Java 持久层技术都基于 JDBC 说明直接使用 JDBC 的场景,如果代码中存在拼接 SQL 语句,那么很有可能会产

2022-02-20 09:04:12 134

转载 ConcurrentHashMap线程安全吗?

没啥深入实践的理论系同学,在使用并发工具时,总是认为把HashMap改为ConcurrentHashMap,就完美解决并发了呀。或者使用写时复制的CopyOnWriteArrayList,性能更佳呀!技术言论虽然自由,但面对魔鬼面试官时,我们更在乎的是这些真的正确吗?1 线程重用导致用户信息错乱生产环境中,有时获取到的用户信息是别人的。查看代码后,发现是使用了ThreadLocal缓存获取到的用户信息。ThreadLocal适用于变量在线程间隔离,而在方法或类间共享的场景。若用户信息的获取比较

2022-02-20 09:01:28 3537 1

转载 106道Java并发和多线程基础面试题大集合

前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了108个多线程的问题。这些多线程的问题来源于各大网站,可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。106个问题汇总1

2022-02-20 08:52:16 332

转载 面试三连问:你这个数据量多大?分库分表怎么做?用的哪个组件?

1. 概述 1.1. ShardingSphere-JDBC 1.2. ShardingSphere-Proxy 1.3. ShardingSphere-Sidecar 1.4. 混合架构 2. 概念 & 功能 2.1. 数据分片 2.2. 读写分离 3. 示例:水平分库分片 4. 写在最后 1. 概述ShardingSphere是一套开源的分布式数据库中间件...

2022-02-19 09:37:13 219

转载 面试三连问:你这个数据量多大?分库分表怎么做?用的哪个组件?

1. 概述 1.1. ShardingSphere-JDBC 1.2. ShardingSphere-Proxy 1.3. ShardingSphere-Sidecar 1.4. 混合架构 2. 概念 & 功能 2.1. 数据分片 2.2. 读写分离 3. 示例:水平分库分片 4. 写在最后 1. 概述ShardingSphere是一套开源的分布式数据库中间件...

2022-02-17 18:17:16 711

转载 阿里三面:为什么使用了索引,查询还是慢?

经常有朋友问到:我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?今天我们就从这个问题开始来聊一聊索引和慢查询。1案例分析言归正传,为了实验,我创建了如下表:CREATETABLE`T`(`id`int(11)NOTNULL,`a`int(11)DEFAUTNULL,PRIMARYKEY(`id`),KEY`a`(`a`))ENGINE=InnoDB;该表有三个字段,其中用id是主键索引,a是普通索引。首先SQL判断一个语句是不是慢...

2022-02-16 15:59:59 103

转载 阿里二面:如何设计与实现短URL服务?

想必大家也经常收到垃圾短信吧...短信中的链接一般都是短链接,类似于下图这样:为什么这里面的URL都是短的呢?有什么好处呢?怎么做到的呢?短URL的好处 短信和许多平台(微博)有字数限制,太长的链接加进去都没有办法写正文了. 好看。比起一大堆不知所以的参数,短链接更加简洁友好. 方便做一些统计。你点了链接会有人记录然后分析的. 安全。不暴露访问参数. 这就是为什么我们现在收到的垃圾短信大多数都是短URL的原因了.那么短URL是怎么做到的呢?...

2022-02-15 11:12:05 286

转载 Redis面试突击专用

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Redis 集群方案应该怎么

2022-02-14 09:35:41 129

转载 几种技巧,帮你提升接口查询速度

来源:llc687.top/post/如何完成一次快速的查询哪个男孩不想完成一次快速的查询?1. MySQL查询慢是什么体验?谢邀,利益相关。大多数互联网应用场景都是读多写少,业务逻辑更多分布在写上。对读的要求大概就是要快。那么都有什么原因会导致我们完成一次出色的慢查询呢?1.1 索引在数据量不是很大时,大多慢查询可以用索引解决,大多慢查询也因为索引不合理而产生。MySQL 索引基于 B+ 树,这句话相信面试都背烂了,接着就可以问最左前缀索引、 B+ 树和各种树了。说到最左前

2022-01-12 14:40:02 276

转载 异步编程的几种方式

来源:http://ericfu.me/several-ways-to-aync近期尝试在搬砖专用语言 Java 上实现异步,起因和过程就不再详述了,总而言之,心中一万头草泥马奔过。但这个过程也没有白白浪费,趁机回顾了一下各种异步编程的实现。这篇文章会涉及到回调、Promise、反应式、async/await、用户态线程等异步编程的实现方案。如果你熟悉它们中的一两种,那应该也能很快理解其他几个。为什么需要异步?操作系统可以看作是个虚拟机(VM),进程生活在操作系统创造的虚拟世界里。进程不用知

2022-01-12 13:57:56 450

转载 四张图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

作者:扛麻袋的少年blog.csdn.net/lzb348110175/article/details/98941378学习之前,我们先来了解一下IO模型:①同步阻塞IO(Blocking IO):即传统的IO模型。②同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。③多路复用IO(IO Multiplexing):即经典的Reactor设计模

2022-01-12 13:32:14 154 1

转载 几种技巧,帮你提升接口查询速度

来源:llc687.top/post/如何完成一次快速的查询哪个男孩不想完成一次快速的查询?1. MySQL查询慢是什么体验?谢邀,利益相关。大多数互联网应用场景都是读多写少,业务逻辑更多分布在写上。对读的要求大概就是要快。那么都有什么原因会导致我们完成一次出色的慢查询呢?1.1 索引在数据量不是很大时,大多慢查询可以用索引解决,大多慢查询也因为索引不合理而产生。MySQL 索引基于 B+ 树,这句话相信面试都背烂了,接着就可以问最左前缀索引、 B+ 树和各种树了。说到最左前

2021-12-24 14:34:18 625

转载 异步编程的几种方式

来源:http://ericfu.me/several-ways-to-aync近期尝试在搬砖专用语言 Java 上实现异步,起因和过程就不再详述了,总而言之,心中一万头草泥马奔过。但这个过程也没有白白浪费,趁机回顾了一下各种异步编程的实现。这篇文章会涉及到回调、Promise、反应式、async/await、用户态线程等异步编程的实现方案。如果你熟悉它们中的一两种,那应该也能很快理解其他几个。为什么需要异步?操作系统可以看作是个虚拟机(VM),进程生活在操作系统创造的虚拟世界里。进程不用知

2021-12-24 14:32:35 129

转载 BIO、NIO、AIO、多路复用 IO 的区别

作者:扛麻袋的少年blog.csdn.net/lzb348110175/article/details/98941378学习之前,我们先来了解一下IO模型:①同步阻塞IO(Blocking IO):即传统的IO模型。②同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。③多路复用IO(IO Multiplexing):即经典的Reactor设计模

2021-12-24 13:15:39 65

转载 了解这些坑

前言在高并发的情况下,你的程序是不是经常出现一些诡异的BUG,每次都是花费大量时间排查,但是你有没有思考过这一切罪恶的源头是什么呢?幕后那些事CPU、内存、I/O设备的速度差异越来越大,这也是程序性能的瓶颈,根据木桶理论,最终决定程序的整体性能取决于最慢的操作-读写I/O设备,单方面的提高CPU的性能是无用的。为了平衡三者的差距,大牛前辈们不断努力,最终做出了卓越的贡献: CPU增加了缓存,平衡与内存之间的速度差异 操作系统增加了进程、线程,以分时复用CPU,进而均衡CP..

2021-12-24 13:13:59 107

转载 appens-before规则

前言众所周知的并发编程三大特性;原子性、可见性、有序性;但是这些特性的起源你知道吗?可见性:正是由于CPU存在缓存,导致了变量修改的不可见性;原子性:线程切换是基于CPU指令而不是高级语言中的一行代码,线程切换可以发生在任意一条CPU指令执行之前,完成之后,因此只能保证CPU指令的原子性;有序性:最诡异的特性,一行代码被拆分成多个CPU指令,但是为了保持高性能,编译器对其做了排序,可能导致顺序改变。好了,以上的三大特性已经了解了,但是如何解决这些问题呢?正题来了,Java内存模型

2021-12-24 13:11:48 131

转载 Mysql 调优

最近给新人codereview,差点吐血,也有一些调优方面的知识,所以顺便记录了下来分享给大家。这里的主要是分享索引方面的调优,在工作中,很多同学都有建立索引的一些经验,但是是否有自己深入的思考过,怎么样建立索引才最合适。字符串怎么建立索引、怎么优化联合索引、怎么避免回表等一些问题,是否有结合自己的实际项目进行深入的思考呢?这里,我就将自己实际中遇到的一些问题分享给大家,下面开始我们的正题,首先开始之前,先来回顾一些基础的知识。什么是Mysql的索引,联合索引是什么?回表是什么?回表怎么解.

2021-12-22 15:35:57 104

转载 慢查询的坑

前言前几天帮公司解决线上慢SQL告警问题,遇到了几个case。下面我会结合case案例分析自己这段时间在工作上遇到的慢查询谈谈数据库如何优化慢查询。一般我们遇到的慢sql都是索引没有正确使用导致的,所以我先介绍下索引相关知识索引介绍索引概念排好序的快速查找的数据结构(我们平时说的索引,如果没有特别指明,都是指B树,其中聚集索引、次要索引、覆盖索引、复合索引、前缀索引、唯一索引默认使用的都是B+树索引,除B+树这种类型的索引外还有哈希索引等)索引优缺点优点: 查找 :提高

2021-12-22 15:33:34 108

转载 Redis夺命连环20问

1. 什么是Redis?它主要用来什么的?Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱

2021-12-22 15:31:06 315

转载 缓存和数据库到底先写哪个?

大型高并发的后端服务系统,处理瓶颈往往是数据库,比如mysql的查询写入。为了能够快速响应用户请求,系统优化自然会想到利用缓存加快处理速度,常用的比如redis,性能非常高的缓存数据库。redis搭配mysql一起使用,绝配。但,没有免费的午餐,你要用缓存,就不得不面对缓存和数据库不一致的问题,解决这种不一致有通用设计模式(其实不仅仅是数据库上的应用),陈皓这篇文章讲的比较全面。来源:coolshell.cn链接:https://coolshell.cn/articles/17416.htm

2021-12-21 14:18:23 333

转载 Redis 16 个常见使用场景

目录 缓存 数据共享分布式 分布式锁 全局ID 计数器 限流 位统计 购物车 用户消息时间线timeline 消息队列 抽奖 点赞、签到、打卡 商品标签 商品筛选 用户关注、推荐模型 排行榜 1、缓存String类型例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。2、数据共享分布式String

2021-12-20 09:34:18 78

转载 详解MySQL性能优化

作者:LanceToBigDatacnblogs.com/zhangyinhua/p/7620964.html说起MySQL的查询优化,相信大家积累一堆技巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。MySQL逻辑架构如果能在头脑中构建一幅.

2021-12-20 09:31:18 346

转载 mysql磁盘满了,会发生什么?

来自:https://urlify.cn/jemaym使用命令发现磁盘使用率为100%了,还剩几十兆。一系列神操作备份数据库,删除实例、删除数据库表、重启mysql服务,结果磁盘空间均没有释放。怎么办网上查了很多资源,说要进行磁盘碎片化整理。原因是datafree占据的空间太多啦。具体可以通过这个sql查看。SELECTCONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB')ASdata_size,CONCAT(TRU...

2021-12-20 09:29:35 359

空空如也

空空如也

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

TA关注的人

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