- 博客(104)
- 收藏
- 关注
原创 【无标题】
批量插入,有则更新,无则插入-- 批量保存,有则更新,无则插入INSERT INTO mm ( a, b, c, d, e, create_time, update_time )VALUES ( 1, '1', 100, 234, 'www.baidu.com', now( ), now( ) ), ( 5, '5', 200, 200, 'www.mm.cn', now( ), now( ) ) ON DUPL
2021-12-15 18:28:50
65
原创 mysql 大字段对性能的影响
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言二、使用步骤1.引入库2.读入数据总结前言提示:为什么不建议使用大字段。# 一、效率演示示例:以下,通过三张表,表字段类型不同,数据量相同,同样的查询,对比性能。-- ------------------------------------ 大字段 ---------------------------------------------------drop table big_data_test_yaofei
2021-06-30 19:53:40
597
原创 创建一个普通的maven项目以-jar启动main
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结tian提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解..
2021-06-21 16:07:08
330
原创 mysql 之delete
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习..
2021-06-18 11:00:59
107
原创 线上某个表带where的count(*)很慢
项目场景:线上出现某个表查询count(*) 时速度很慢,带where条件。SELECT count(1)FROM mm_user WHERE type = 38 AND source = 0 AND status = 0 ;原因分析:提示:表碎片(https://www.cnblogs.com/kerrycode/p/10943122.html),表重建:https://cloud.tencent.com/developer/article/
2021-06-02 14:26:31
385
原创 线上mysql cpu过高
文章目录前言一、背景二、分析1.mysql cpu 过高分析2. mysql 内存过高对服务端的影响1、现象总结前言线上mysql服务器cpu1000%的分析一、背景 早上接到mysql的报警,cpu 800%,紧接着发现线上服务的官网都打不开了,服务报警接踵而至。二、分析1.mysql cpu 过高分析好文参考文中要点:单位时间 CPU 资源 = 查询执行的平均成本 x 单位时间执行的查询数量显然,cpu使用率与【查询执行的平均成本】和【单位时间执行的查询数量】线性相关,而这两项就
2021-05-25 20:42:44
189
原创 javadoc规范
提示:javadoc 规范文章目录一、引用某个类和类的方法1、跳转到类2、跳转到方法总结一、引用某个类和类的方法1、跳转到类方式一:/*** @see com.yy.e.teachee.sites.admin.enums.WhatsAppStatus */1、@see 要顶头2、类全名方式二:/** * * {@link com.yy.e.teachee.sites.admin.enums.WhatsAppStatus} */1、可以不顶头写2、类
2021-04-13 18:45:37
262
原创 url 编码相关
文章目录url编码相关一、urlEncode时,编码空格时,变成了+号二、使用步骤1.引入库2.读入数据总结url编码相关提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、urlEncode时,编码空格时,变成了+号如何解决二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas
2021-03-31 17:55:14
54
原创 curl 命令
文章目录一、get 请求1. 传递多个参数二、使用步骤1.引入库2.读入数据总结一、get 请求1. 传递多个参数需要用curl "localhost:8080/isLegalContent?uid=122332&content=test"二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport wa
2021-03-31 17:25:44
372
原创 mysql exists vs in
文章目录一、使用总结一、使用参考示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...
2021-03-05 12:42:48
100
原创 1.8 ConcurrentHashMap 源码分析
文章目录一、put方法二、使用步骤1.引入库1.1 spread 方法总结一、put方法/** * concurrentHashMap 的 put * @param key * @param value * @param onlyIfAbsent * @return */ final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null ||
2021-03-04 10:26:11
285
4
原创 transient
文章目录一、transient使用二、使用步骤1.引入库2.读入数据总结一、transient使用我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),
2021-03-03 19:54:11
214
1
原创 maven使用
文章目录一、settings.xml配置文件servers配置二、使用步骤1.引入库2.读入数据总结一、settings.xml配置文件servers配置一般,仓库的下载和部署是在pom.xml文件中的repositories和distributionManagement元素中定义的。然而,一般类似用户名、密码(有些仓库访问是需要安全认证的)等信息不应该在pom.xml文件中配置,这些信息可以配置在settings.xml中。下面展示了配置私服拉取jar包和push到远程私服的配置:pom.xm
2021-03-03 18:06:19
120
1
原创 jvm内存分配和日志分析
文章目录前言一、新生代和老年代比例二、jdk8默认垃圾收集器三、jvm 参数设置四、jvm 日志分析总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、新生代和老年代比例堆大小 = 新生代 + 老年代。其中,堆的大小可以通过参数 –Xms、-Xmx 来指定。默认的,新生代 ( Young ) 与老年代 ( Old ) 的比例的
2021-03-01 14:28:46
688
原创 AQS 源码解析
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、基于ReentrantLock的公平锁进行的解析1、lock()2、ReentrantLock 的 tryAcquire()3、hasQueuedPredecessors4、acquireQueued5、addWaiter总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内
2021-01-24 22:40:40
153
原创 线程池的选择
文章目录前言一、参数选择1、 构造方法2、corePoolSize3、maximumPoolSize4、keepAliveTime5、BlockingQueue workQueue6、ThreadFactory threadFactory7、RejectedExecutionHandler handler二、Executors 中五种常见的线程池1. newCachedThreadPool2、newFixedThreadPool3、newSingleThreadPool4、newScheduledThrea
2021-01-24 11:43:18
736
原创 ThreadLocal 源码解析
文章目录一、set方法二、rehash三、replaceStaleEntry情况1:向前寻找到null的路上没找到脏entry,向后寻找到null之间的路上碰到脏entry总结一、set方法set源码示例:public void set(T value) { Thread t = Thread.currentThread(); // 获取当前线程的ThreadLocalMap ThreadLocalMap map = getMap(t);
2021-01-17 23:21:47
132
2
原创 线程池工作原理
提示:duoxiancheng文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库execute:/**
2021-01-13 16:44:15
172
原创 中断线程
文章目录前言一、认识中断标志位1. interrupted()2. interrupted() vs isInterrupted()二、InterrupteException的处理参考前言提示:线程的结束可以分为正常结束,和异常结束。结束线程有两种方式:1.是用stop方法,不过这个方法是强行结束正在运行的线程,会存在数据不一致的问题,已经废弃,2.是用interrupte status ,本文主要介绍2。一、认识中断标志位1. interrupted()interrupt方法用于中断线程。
2021-01-12 15:41:26
168
原创 ThreadLocal 源码之 expungeStaleEntry
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录学习目标:学习内容:学习时间:学习产出:项目场景:问题描述:原因分析:解决方案:前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结学习目标:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例如:1、
2021-01-10 23:08:32
1414
1
原创 ThreadLocal 源码之 cleanSomeSlots
ThreadLocal 系列 1: cleanSomeSlots文章目录ThreadLocal 系列 1: cleanSomeSlots前言一、源码分析总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、源码分析先贴上源码:private boolean cleanSomeSlots(int i, int n) { boolean removed
2021-01-10 22:36:29
998
原创 git配置多项目账号密码
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、git 配置生效范围和缓存说明1. 生效范围2.缓存说明二、解决同一个域名,但是不同账号的项目的配置问题1. 问题描述总结前言提示:我们有时希望为每个项目配置自己的git账号密码,与其他项目互不冲突,假设这些账号密码分别是gitlab和github的话,可能还比较好配置,直接设置 当前项目的git name 和git email 即可。但是当两个项目都是github的时候,而且两个项目是不同的用户的项目,这时就会有点不
2021-01-06 20:03:32
1581
原创 创建一个github项目
文章目录前言一、创建github项目二、和本地代码关联1. git clone 项目2. 将项目关联前言提示:创建一个github项目并进行开发。一、创建github项目然后小白点击到底完成即可。二、和本地代码关联1. git clone 项目在这里复制http链接然后git clone [刚才复制的连接]然后就down下来项目到本地了。2. 将项目关联创建一个自己的项目,要推到这个上面的。然后将项目的所有东西复制到刚才clone的那个项目的根目录下。然后在根目录下git
2021-01-06 13:18:25
419
原创 monitor 锁优化
文章目录前言一、各种锁状态1. 自旋与自适应自旋2. 锁消除3. 锁粗化4 . 轻量级锁4.1 锁状态的标志位4.2 上锁过程4.3 解锁5. 偏向锁5.1 主要作用5.2 怎么工作二、锁优化的过程前言提示:本文我们来讲解下synchronized 锁的优化过程,详情请移步《深入理解java虚拟机》的第13章。参考文章:一、各种锁状态1. 自旋与自适应自旋 自旋定义:实际中当现有的处理器在执行任务时,有线程在等待时,可能只需要等待很短的时间即可,因此就让此线程不放弃处理器的执行时间,空循
2021-01-02 18:13:00
160
原创 volatile学习
文章目录一、主要作用二、可见性1. 是什么2. 原理2.指令重排2.1 是什么?2.2 指令重排在多线程存在问题3 依然线程不安全4 使用示例总结一、主要作用保证可见性禁止指令重排二、可见性1. 是什么可见性是由于多cpu而导致的缓存不一致问题而JVM中用volatie来消除了它,可看图2. 原理volatile底层做了什么事情呢,其实就是volatile在赋值操作时,其后会执行一个指令,即内存屏障的功效,它有两个作用,其一是使得本cpu的高速缓存的改值刷新会主内存,同时,使得其他c
2021-01-01 15:29:35
82
2
原创 延迟队列-redis
文章目录前言一、预热二、java实现1.引入库2.读入数据三、缺点总结前言延迟队列的实现方式有多种,这里用redis 的zset 来实现一、预热使用 zset思路:我们给每个value设置score = 过期时间的时间戳例如 当前时间戳是 1609154995707 , 60秒后过期,则可以设置score = 1609154995707 + 60 。然后倒序排列,每次取出一批过期的数据,然后进行业务处理,并将其移除出zsetredis 命令:// 给每个key设置value时,指定s
2020-12-28 19:40:00
119
原创 线程的状态
文章目录前言二、各状态详解就绪状态 & running阻塞(BLOCKED)WAITINGTIMED_WAITING总结前言线程几种状态的解释。# 一、线程的状态线程的状态有六种:在Thread类里面的State 枚举中展示NEWRUNNABLE又包含两种就绪状态RUNNINGBLOCKEDWAITINGTIMED_WAITINGTERMINATED二、各状态详解就绪状态 & running即jVM已经准备好了,线程在等待抢CPU时间片。抢到就
2020-12-28 18:30:32
72
原创 mysql事务
文章目录前言一、ACID1.redo log2.undo log二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、ACID事务的四要素:ACID,自行百度。隔离性是由锁来控制的,可以参考它还有它。原子性和持久性是由redo log来实现的,可以参考。一致性由undo log来实现。redo 和
2020-12-27 22:40:56
64
原创 丢失更新
文章目录前言一、第一类丢失更新二、第二类丢失更新总结前言第一类和第二类丢失更新定义一、第一类丢失更新事务A 读取第m行数据 ,如账户金额1000,然后取100,还没提交,然后,事务B读取第m行数据,金额1000,然后汇入100,先提交,A提交或者回滚都会使得数据不对。时间事务A事务BT1开始事务T2T3T4T5T6T7这个不会发生: 不论哪个事务先开始,都是对那行数据加了X锁,那么别的事务只能
2020-12-27 17:19:59
429
原创 git 操作指南
文章目录前言一、常用命令1.建立本地分支和远程已有分支的关联二、使用步骤1.引入库2.读入数据总结前言提示:常见git操作指南。一、常用命令示例:常用命令指南。1.建立本地分支和远程已有分支的关联有时,我们可能希望将本地分支tmp与远程的origin/dev建立连系,可以进行pull,push操作等。// 建立本地分支和远程分支的关联git branch --set-upstream-to=origin/远程分支名 本地分支名// 查看本地分支与远程分支的关联情况git branc
2020-12-27 13:59:29
322
1
原创 查询每个班级前几名
文章目录前言一、数据准备二、查询总结前言提示:分组但不聚合,就是orcle中的窗口函数提示:以下是本篇文章正文内容,下面案例可供参考一、数据准备create table group_order_3_test(`number_id` bigint(20) NOT NULL AUTO_INCREMENT, `class` varchar(255) NOT NULL COMMENT '班级', `student_id` int(11) NOT NULL, `score` int(11)
2020-12-26 20:49:22
615
原创 synchronized学习
文章目录前言一、使用二、monitor介绍1.对象头2.monitor2.原理剖析1.同步代码块1. 数据准备总结前言提示:分析synchronized的实现原理。概括:Java 虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现, 无论是显式同步(有明确的 monitorenter 和 monitorexit 指令,即同步代码块)还是隐式同步都是如此。一、使用代码块实例方法静态方法使用比较简单,略,自行百度。二、monitor介绍1.对
2020-12-25 15:39:01
103
1
原创 Innodb间隙锁
文章目录前言一、锁的算法1. 三种算法2. Next-Key Lock锁住的范围二、示例 (可重复读隔离级别)1.当查询的索引有唯一属性时1. 准备数据2.演示2.当查询的索引没有唯一属性时1. 准备数据2.演示1.锁住这行3. 锁住的是聚集索引和辅助索引对应的行和范围总结前言提示:演示间隙锁是如何工作的,以及如何解决幻读的一、锁的算法1. 三种算法Record Lock (读已提交用的是这个)Gap LockNext-Key Lock : Record Lock + Gap Lock
2020-12-23 23:31:30
259
原创 InnoDB的MVCC
文章目录前言一、版本号二、使用总结前言提示:mvcc使用快照的方式存储各种版本的数据。读已提交事务隔离级别读取的是被锁定行的数据的最新的快照。可重复读隔离级别读取的总是本事务开始时的行数据版本。作用:解决不同事务之间对于行数据的读写的并发性能问题一、版本号每行记录都多创建了两个字段,一个是创建时的版本号(假设字段为M),一个是删除时对应的版本号(假设字段为N)二、使用以可重复读来说明下:select时: 查找时,只查行数据的M字段版本号小于等于当前版本号的,小于说明是本事务开始前已经存在
2020-12-23 17:37:18
94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人