- 博客(21)
- 收藏
- 关注
原创 MySQL解析器和优化器,你了解它们吗?
其主要功能是将输入的SQL语句分解为语法单元,然后将这些语法单元转换为内部表示的数据结构,最终生成一个可执行的查询计划。在语义分析阶段,MySQL的SQL解析器会对SQL语句的语义进行检查。这一阶段的任务包括对表和列名进行解析,检查SQL语句的语义正确性,并将SQL语句转换为适当的内部数据结构。关系代数对SQL语句做一些等价变换,对条件表达式进行等价谓词重写、条件简化,对视图进行重写,对子查询进行优化,对连接语义进行了外连接消除、嵌套连接消除等。优化器分为两种方式,逻辑查询优化和物理查询优化。
2023-05-02 02:07:03 1016 1
原创 MySQL几种备份方式对比,你用对了吗?
指上一次全量备份数据之后到下一次全备之前数据库所更新的数据,对于mysqldump来说binlog就是增量数据,MySQL还没有提供真正的增量备份工具,可以通过复制binlog日志实现增量备份。实现完全备份和增量备份;对InnoDB支持热备,支持完全备份和增量备份。逻辑备份工具, 适用于所有的存储引擎, 支持温备、完全备份、部分备份、对于InnoDB存储引擎支持热备。:不停库,不停服务,备份,会(锁表) 阻止用户的写入,读操作可以执行。物理备份工具, 适用于所有的存储引擎, 冷备、完全备份、部分备份。
2023-05-02 02:04:50 935
原创 HDFS设计
HDFS概述HDFS是Hadoop里的一个模块,用来作为分布式文件系统存储数据的HDFS特点大文件:HDFS可以存储几百MB,几百GB甚至几百TB流式数据访问:一次写入,多次读取,每次分析涉及大部分文件,因此读取大部分数据的延迟比一条数据延迟更重要商用硬件:HDFS具备多个副本,可以保证在一条节点宕机之后,可以通过副本实现数据的完整,所以可以在普通的主机上运行不适合低延迟访问:由于HDFS是为大文件存储设计的,是要以牺牲访问时间为代价的不适合大量小文件:HDFS的架构是管理节点-
2021-02-18 14:55:08 323
原创 图解最小堆形成(附带java实现代码)
最小(大)堆最小(大)堆是一颗完全二叉树,该树中的某个节点的值总是不大于(不小于)其左右子节点的值。可以通过下图理解,另外,为什么会使用数组来保存呢?因为利用完全二叉树的性质,我们可以通过数组来表示完全二叉树(数组下标与完全二叉树节点存在映射关系,比如父节点可以通过Math.floor((index-1)/2)来获取),从而简化了实现及开销,避免使用额外的指针来实现树结构。最小(大...
2020-04-01 19:40:11 698
原创 ThreadLocal为什么建议用static修饰
1,static修饰的变量的生命周期首先static修饰的变量是在类在加载时就分配地址了,在类卸载才会被回收,这一点请明确.2,分析ThreadLocal的原理是在Thread内部有一个ThreadLocalMap的集合对象,他的key是ThreadLocal,value就是你要存储的变量副本,不同的线程他的ThreadLocalMap是隔离开的,如果变量ThreadLocal...
2019-12-10 10:17:58 6841 1
原创 Elasticsearch和Mysql的区别
名词对比:ES: index(索引)-->type(类型)-->document(文档)-->field(字段)mysql: database(数据库)-->table(表)-->row(行)-->line(列)区别:1:遍历方式ES有分片的概念,一个大的索引会被分成多个分片来进行存储数据,使用分布式的架构对分片进行并行搜索(基...
2019-11-20 17:52:59 5475
原创 redis的过期策略以及主从出现数据脏读
reids分为三个过期策略分别是:惰性删除 定期删除 主动删除1.惰性删除当读写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key,这个是被动的2.定期删除redis默认每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果有过期就删除。注意这里是随机抽取的。为什么要随机呢?你想一想假如 redis 存了几十万个 key ,每隔100ms就...
2019-11-19 14:05:22 2580 2
原创 CSA和synchronized使用的场景
csa原理csa的原理是对比期望值和实际值是否相等,不相等就一直循环,直到成功.synchronized的原理synchronized的原理通过jvm的锁实现每次只允许一个线程执行.代码验证两者的性能csa代码package csa;import java.lang.reflect.Field;import java.util.concurrent.atomi...
2019-11-11 17:16:45 369
原创 load飙高排查
1、load解释load的在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息,举例如下:假设一个CPU每分钟处理100个线程。假设此时一分钟内处理了80个线程时,此时load值为0.8,属于正常。如果一分钟处理180个线程,load就是1.8.说明在阻塞队列中还有80个线程等待。2、load的飙高排产2.1、任务多导致的loa...
2019-09-05 23:59:41 1377
原创 线程池中如何确定线程的数目
简单点计算:cpu密集型:2*cpu+1io密集型:cpu+1混合型:(io执行时间/cpu执行时间+1)*cpu任务依赖性同混合型针对不同的任务性质而言:CPU密集型任务应配置尽可能小的线程,如配置CPU个数+1的线程数,IO密集型任务应配置尽可能多的线程,因为IO操作不占用CPU,不要让CPU闲下来,应加大线程数量,如配置两倍CPU个数+1任务对其他系统资源有依赖:如某...
2019-09-03 21:59:54 2412 2
原创 写了一个简易版的springMVC(仿照springMVC)
全程只引入了servlet-api的jar包博客有时间完善地址:https://github.com/NOCurrently/springMVC-simple.git
2018-12-14 11:07:28 127
原创 springboot整合mybatis和pageHelper异常问题
我使用的springboot版本为1.5.2<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version>&a
2018-02-23 15:46:54 1664
原创 Springboot和mybatis整合
Springboot和mybatis整合1. 导入pom文件parent> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-parentartifactId> version>1.4.0.RELEASE
2018-01-27 15:39:48 238
转载 JWT
JWT 前段时间我也简单的用了一下JWT,感觉它很废(个人观点),why?,下面是我整合其他人的一些观点。 声明本文内容的作用范围仅限 Web 应用。词汇定义无状态 JWT:JWT 中存储所有认证授权信息,服务端不存储任何相关数据。有状态 JWT:JWT 中存储认证授权信息的 ID,具体数据存储在服务端。Session / Cookie :有几种实现形式:签
2018-01-07 17:04:00 4714 3
原创 Jasperreports报表
Jasperreports技术事先需要ireport制作模板一,整合jasperreports所需jar包dependency> groupId>org.eclipse.birt.runtime.3_7_1groupId> artifactId>com.lowagie.textartifactId> version>2.1.7version>depen
2018-01-05 19:41:00 335
原创 CXF实现webService之restful风格的RS模式
以spring boot来整合jersey的restful风格是webservice
2017-12-28 11:23:33 657
原创 SpringBoot对ActiveMQ的配置解析
spring.activemq.broker-url=指定ActiveMQ broker的URL,默认自动生成.spring.activemq.in-memory=是否是内存模式,默认为true.spring.activemq.password=指定broker的密码.sprin
2017-12-07 11:02:24 12461
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人