- 博客(44)
- 收藏
- 关注
原创 性能优化 --- SQL优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: > select id from t where num is null >> 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:>> select id from t where ......
2022-07-27 22:44:59
163
原创 Java JVM 调优 (一)
JDK体系结构:- Java的特性 - 跨平台,怎么实现跨平台?- JVM 内存模型栈内存:存放局部变量表、操作数栈、动态链接、方法出口 堆内存:存放实例对象和数组,类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,保存所有引用类型的真实信息,以方便执行器执行 方法区: 类装载器:负责加载class文件,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构,ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execut
2022-04-11 00:41:52
179
原创 MySql-G-性能优化(六)
一、查询优化1)永远小表驱动大表EXISTSSELECT ...FROM table WHERE EXISTS(subquery)该语法可以理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果(true或false)来决定主查询的数据结果是否得以保留。提示1.EXISTS(subquery)只返回 true 或 false,因此子查询中的 SELECT * 也可以是 SELECT 1 或其他,官方说法是实际执行时会忽略 SELECT 清单,因此没有区别。2.EXIS.
2022-04-05 23:50:27
638
原创 MySql-G-性能优化(五)
一、索引性能如何达到最优?1)全值匹配我最爱-> 查询匹配与索引结构顺序一致,不违背高效sql的最佳左前缀法则,不跳过索引中间任何列,2)最佳左前缀法则 如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且 不跳过索引中的列。例如:建复合索引,c1、c2、c3,按索引的顺序进行查询,不跳过c1或c2直接查c33)不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描4)存储引擎不能使用索引中范围...
2022-04-05 22:41:12
633
原创 MySql-G-性能优化(四)
一、性能分析MySql Query OptimizerMySql常见瓶颈CPU :CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据的时候 IO:磁盘I/O瓶颈发生在装入数据远大于内存容量的时候 服务器硬件的性能瓶颈:top,free,iostat和vmstat来查看系统的性能状态 Explain(执行计划)Explain + SQL语句使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySql是如何处理你的SQL语句的。分析你的...
2022-04-05 12:43:15
978
原创 Mysql-G-性能优化(三)
一、什么是索引索引 (Index) 是帮助Mysql高效获取数据的数据结构。可以理解为“排好序的快速查找数据结构” 数据本身之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式示例:为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在一定的复杂度内获取到相应数据,从而快
2022-04-03 23:41:09
654
原创 Mysql-G-sql 性能优化(二)
一、sql性能下降的原因查询语句写的比较差 索引失效:a.单值索引、b.复合索引 关联查询太多join(设计缺陷或不得已的需求) 服务器调优及各个参数设置(缓冲、线程数等)二、常见的join查询 1.左连接 SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key 2.右连接SEL...
2022-04-03 19:17:21
460
原创 Spring源码环境搭建 -(源码下载运行)
一、下载源码https://github.com/spring-projects/ 本次使用的源码 spring-framework-5.1.x Gradle-7.2-bin(也可以用源码文件中指定的版本) jdk 11 (jdk1.8以上即可) ide 2021.2.2(或 ide2019)登录Spring官网,选择Spring-framework直接下载zip压缩包,解压到本地即可,git clone 太慢二、选择对应版本的gradle,下载gradle打开Gradl...
2022-03-20 17:24:05
1292
原创 Kotlin 学习 (一)
什么是kotlinJetBrains 公司开发,做开发工具起家 官网:https://www.jetbrains.comkotlin优势全面支持Lambda表达式 数据类(Data classes) 函数字面量和内联函数(Function literals & inline functions) 函数扩展(Extension functions) 空安全(Null safety) 智能转换(Smart casts) 字符串模板(String templates) 主构造函数
2022-01-27 11:32:17
9361
原创 开发规范(一) - 分支规范
分支规范 master(主分支) - 稳定版 develop(开发分支) - 最新版 release(发布分支) - 发布新版本 hotfix(热修复分支)- 修复线上bug feature(特性分支) - 实现新特性Gitlab 角色与项目角色对应关系 Owner(拥有者) Git 管理员 Master(管理员) 开发主管 Developer(开发者) 开发人员 Reporter(报告者) 测试人员 ...
2022-01-18 10:51:10
934
原创 WSDL生成客户端调WebService
先看WSDL报文(访问wsdl地址):如下 是服务端发布的服务http://192.168.7.70/csp/hsb/DHC.Published.PUB0015.BS.PUB0015.CLS?WSDL根据wsdl报文生成客户端代码优点:可以像调本地接口一样访问; 缺点:服务端接口发生改变代码得重新生成;将此网页另存为 以.xml 保存在本地将<s:element ref="s:schema" />全部删除掉不然在生成java文件的时候会报错,没有则忽略...
2022-01-16 00:09:38
1814
原创 PostMan 如何调用 WebService
首先 服务端提供服务:1.服务接口2.服务实现类3.config配置类 - 此实例使用 CXF 实现webservice4.客户端测试发布服务,请求WSDL -> 服务发布成功注: 字符流 参数不能用Object做为接受参数类型,会获取不到请求过来的数据,一直为null;本次用例服务 为 SOAP1.2 的请求协议headersContent-Type application/soap+xml;chars...
2021-12-18 01:24:28
30597
原创 Java - Dom4J解析XML
1.XML解析的方式 DOM: 要求解析器将整个XML文件全部加载到内存中,生成一个Document对象 1.优点:元素和元素之间保留结构,关系,可以针对元素进行CURD操作。 2.缺点:如果XML文件过大,可能会导致内存溢出。 SAX:是一种速度更快,更加高效的解析方式。它是逐行扫描,边扫描边解析,并且以事件驱动的方式来进行具体的解析,每解析已行都会触发一个事件 1.优点:不会出现内存...
2021-12-13 22:53:44
1348
原创 DOS 打包 - JAR/WAR
jar包的cmd生成1.检查jdk和java安装工具是否已就绪 -> Window+R -> 进入 cmd窗口 -> java/javac(是否虚拟机这准备就绪)2.class 文件路径 ->E:\Projects\pharstation-common\build\classes -> cd /dE:\Projects\pharstation-common\build\classes -> 运行jdk自带jar包命令(jar -cvf pharststi...
2021-10-24 01:40:26
1635
原创 Mysql-G-数据库优化
对于MySQL层优化我一般遵从五个原则:减少数据访问: 设置合理的字段类型,启用压缩,通过索引访问等减少磁盘IO 返回更少的数据: 只返回需要的字段和数据分页处理 减少磁盘io及网络io 减少交互次数: 批量DML操作,函数存储等减少数据连接次数 减少服务器CPU开销: 尽量减少数据库排序操作以及全表查询,减少cpu 内存占用 利用更多资源: 使用表分区,可以增加并行操作,更大限度利用cpu资源总结到SQL优化中,就三点:最大化利用索引; 尽可能避免全表扫描; 减少无效数据...
2021-10-09 15:48:52
104
原创 SpringCloud-H-OpenFeign
GitHub:https://github.com/spring-cloud/spring-cloud-openfeignFeign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。接口+注解 -> 微服务调用接口+@FeignClientFeign在消费端使用构建 Feign 工程-> pom 中引入依赖-> yml 中添加配置server: port: 80eureka:...
2021-09-17 18:59:35
190
原创 SpringCloud-H-Eureka自我保护机制
概述:保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据,也就是不会注销任何微服务。进入自我保护模式 - > 代表着,某时刻某一个微服务不可用了,Eureka不会立即清理,依旧会对该微服务的信息进行保存,属于分布式CAP里面的AP分支为什么会产生Eureka自我保护机制?为了防止EurekaClient可以正常运行,但是 与 EurekaServ.
2021-09-16 12:57:33
89
原创 SpringCloud-H-支付微服务集群
服务提供者集群配置支付服务8001注册进Eureka集群yml文件修改:分别注册进Eureka 7001、7002 defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #eureka集群,服务分部注册进集群完整yml:server: port: 8001spring: application: name: cloud-payment-servi..
2021-09-15 23:27:48
130
原创 Spring Cloud-H-Eureka 集群
微服务RPC远程调用最核心是什么?高可用如何实现高可用?搭建Eureka注册中心集群 实现负载均衡+故障容错修改 C:\Windows\System32\drivers\etc 路径下的hosts文件修改映射配置添加进hosts文件127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comeureka server7001server: port: ...
2021-09-15 15:19:38
72
原创 SpringCloud-H-Eureka
什么是服务治理?Spring Cloud 封装了Netflix公司开发的 Eureka 模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间的依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。什么是服务注册?Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到Eureka Server
2021-09-15 12:07:44
73
原创 idea开启Run DashBoard
一、使用 Run Dashboard 的好处使我们配置的项目可视化,一眼看到底,方便spring boot项目重新配置、Run、Debug,简化了我们的操作步骤。二、如何配置自动启动Run Dashboard找到.idea下面的workspace.xml文件 ->通过修改idea的workspace.xml的方式来快速打开 Run Dashboard窗口 在下面的代码中加入一段配置代码源代码位置源代码位置<component name="RunDa...
2021-09-14 15:22:38
546
原创 热部署-Devtool
一、子工程pom文件中引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </depende
2021-09-14 13:35:27
134
原创 SpringCloud-H-整体聚合父工程Project
Spring Cloud官网:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/ 中文文档:https://www.bookstack.cn/read/spring-cloud-docs/docs-index.mdSpring Boothttps://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/reference/htmlsingle/Spr
2021-09-13 00:09:56
120
原创 css-选择器的优先级
css样式在html中有三种存在形态:内联样式: <div style="display: none"></div> 内部样式: <style></style> 外联样式: <link href="" /> 三者的优先级为:内联样式>内部样式>外联样式。<!DOCTYPE html><html> <head> <meta charset="utf-8"> &l
2021-09-04 23:26:27
121
原创 CSS-子元素选择器
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> /** * 为第一个P标签设置一个背景颜色为黄色 * :first-child 可以选中第一个子元素 * :last-chhild 可以选中最后一个子元素 */ p:firs.
2021-09-04 23:23:47
300
原创 css-样式的继承
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> body{ font-size: 30px; } </style> </head> <body> <!-- 在CSS中,祖先元素.
2021-09-04 23:22:57
666
原创 CSS-选择器
兄弟选择器<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> /** * 后一个兄弟元素选择器 * 作用:可以选中一个元素后紧挨着的指定的兄弟元素 * 语法:前一个 + 后一个 */ span + p{ ba
2021-09-04 23:21:35
43
原创 CSS-伪类选择器
伪类:同一个标签,根据其不同的种状态,有不同的样式。这就叫做“伪类”。伪类用冒号来表示。比如div是属于box类,这一点很明确,就是属于box类。但是a属于什么类?不明确。因为需要看用户点击前是什么状态,点击后是什么状态。所以,就叫做“伪类”。静态伪类和动态伪类伪类选择器分为两种。(1)静态伪类:只能用于超链接的样式。如下::link超链接点击之前 :visited链接被访问过之后PS:以上两种样式,只能用于超链接。(2)动态伪类:针对所有标签都适用的样式。如下::hov..
2021-09-04 23:16:01
119
原创 CSS-属性选择器
- 属性选择器 * - 作用:可以根据元素中的属性或属性值来选取指定元素 * - 语法: * [属性名] 选取含有指定属性的元素 * [属性名="属性值"]选取含有指定属性值的元素 * [属性名^="属性值"]选取以属性值开头的元素 *...
2021-08-28 23:54:30
161
原创 css-伪元素
标签即元素,元素即标签什么是伪元素?CSS 伪元素用于设置元素指定部分的样式。例如,它可用于:设置元素的首字母、首行的样式 在元素的内容之前或之后插入内容语法伪元素的语法:selector::pseudo-element { property: value;}::first-line 伪元素::first-line伪元素用于向文本的首行添加特殊样式。下面的例子为所有 <p> 元素中的首行添加样式:实例p::first-line { .
2021-08-28 23:20:45
626
原创 CSS-常用选择器
选择器元素选择器 id选择器 类选择器元素选择器作用:通过元素选择器可以选中页面中的所有指定元素语法:标签名{}p{ font-size:20px; }id选择器通过元素的id属性值选中唯一的一个元素 语法:#id属性值{}#p_id{ font-size: 20px;}类选择器通过元素的class属性值选中一组元素 语法:.class属性值{}.p_class{color: red;}.h_class{font-siz...
2021-08-27 22:34:07
89
原创 CSS-块级元素和行内元素
标签分为两种等级: 1,行内元素。2,块级元素。行内元素和块级元素的区别: 行内元素: 与其他行内元素并排 不能设置宽高,默认的宽度就是文字的宽度块级元素:霸占一行,不能与其他任何元素并列。 能接受宽高,如果不设置宽度,那么宽度将默认变为父级的100%。块级元素和行内元素的分类: 在HTML的角度来讲,标签分为: 文本级标签:p , span , a , b , i , u , em 容器级标签:div , h系列 , li , dt ,dd
2021-08-27 00:28:14
2138
原创 CSS(Cascading Style Sheets)
层叠样式表css可以用来为网页创建样式表,通过样式表可以对网页进行装饰。 所谓层叠,可以将整个网页想象成是一层一层的结构,层次高的将会覆盖层次低的。 而css就可以分别为网页的各个层次设置样式。内联样式样式直接编写到 style 属性中; 内联样式只对当前的元素中的内容起作用;<!doctype html><html> <head> <meta charset="utf-8"/> <title
2021-07-29 23:23:33
257
原创 HTML基础
CS = Client - Server = 客戶端 - 服務器。例:QQ,迅雷,快播,暴風影音等等。只要有和服務器通訊的都算。BS = Browser - Server = 浏览器 - 服務器。 例子:所有的网站都是bs。C/S系统结构B/S系统结构一个网页主要由三部分组成:结构、表现、行为HTML超文本标记语言<!-- html根标签,一个页面中有且只有一个根标签,网页中的所有内容都应该写在html根标签中-->...
2021-07-23 23:38:37
31
转载 Redis缓存淘汰策略
原文连接地址:https://www.cnblogs.com/bob-zb/p/12583195.html(1)volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。(2)volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。(3)volatile-random:从已设置过期时间的数据集中任意选择数据淘汰。(4)volatile-lfu:从已设置过期时间的数据集挑选使用频率最低的数据淘汰。(5)allkeys-lru:从数据集中挑选最近最少
2021-06-27 18:47:06
246
原创 JAVA基础 -- 精篇
1.面向对象和面向过程的区别面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。比如单片机、嵌入式开发、Linux/Unix,等一般采用面向过程开发,性能是最重要的因素。缺点:没有面向对象易维护、易复用、易扩展面向对象优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护缺点:性能比面向过程低...
2021-05-23 16:09:47
60
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人