- 博客(343)
- 收藏
- 关注
原创 第05-3节:加载流程原理介绍(Done)
用户进入linux系统就会初始化Shell环境, 这个环境会加载全局配置文件和用户个人配置文件中环境变量每个脚本文件都有自己的Shell环境。
2024-09-27 10:44:18 363
原创 [001-03-007].第28节:SpringBoot整合Redis:
1.Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。2.它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。3.Redis 内置了 复制(replication),LUA脚本(Lua scripting)
2024-09-26 15:43:25 416
原创 [000-002-01].第29节:MySQL执行流程
1.Server 如果在查询缓存中发现了这条 SQL 语句,就会直接将结果返回给客户端;2.如果没有命中缓存,就进入到解析器阶段3.注意:因为查询缓存往往效率不高,所以在MySQL8.0 之后就抛弃了这个功能。在解析器中对 SQL 语句进行语法分析、语义分析1.如果没有命中查询缓存,就要开始真正执行语句了。首先,MySQL需要知道你要做什么,因此需要对SQL语句做解析。SQL语句的分析分为词法分析与语法分析。2.分析器先做“ 词法分析 ”。
2024-09-24 11:28:42 1034
原创 [001-008-04].XXL-JOB是什么
1.XXL-Job:是大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展2.大众点评目前已接入XXL-JOB,该系统在内部已调度约100万次,表现优异。3.目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,360金融 (360),联想集团 (联想),易信 (网易)等等4.官网地址。
2024-09-22 00:20:17 582
原创 [001-02-001].第2节:java开发环境搭建
dir : 列出当前目录下的文件以及文件夹md: 创建目录rd: 删除目录(需要目录是空的才可以删除也可以这样删除非空目录test:首先删除非空目录下的所有文件:即del test;然后选择yes;rd test;cd : 进入指定目录cd..: 退回到上一级目录cd\: 退回到根目录del : 删除文件;如del *.text;del a.text;exit : 退出 dos 命令行1.第一代语言:机器语言。指令以二进制代码形式存在。2.第二代语言:汇编语言。
2024-09-21 17:57:56 1225
原创 [021-07].第08节:Elasticsearch的RestClient查询文档
2.上述代码省略了查询条件部分,但是大家不要忘了:高亮查询必须使用全文检索查询,并且要有搜索关键字,将来才可以对关键字高亮。
2024-09-21 14:08:22 1120
原创 [001-01-001].第001-3部分:Linux相关-服务运维必会(ToDo)
阶段4 - 阶段7是更偏向运维的使用,在后续的学习中慢慢补充完整。
2024-09-20 12:57:47 405
原创 # 5、优化数据库结构
一个好的数据库设计方案对于数据库的性能常常会起到事半功倍的效果。合理的数据库结构不仅可以使数据库占用更小的磁盘空间,而且能够使查询速度更快。数据库结构的设计需要考虑数据冗余、查询和更新的速度、字段的数据类型是否合理等多方面的内容。
2024-09-14 09:27:32 910
原创 9.如何给字符串添加索引
有一张教师表,表定义如下:12345讲师要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句:1如果 email 这个字段上没有索引,那么这个语句就只能做全表扫描。9.1.前缀索引(1)MySQL是支持前缀索引的。默认地,如果你创建索引的语句不指定前缀长度,那么索引就会包含整个字符串。
2024-09-14 08:53:09 425
原创 # 8.优先考虑覆盖索引
这里需要解释一下,前面的第 2 节总结的索引失效的情况指的是一般规律,并非完全绝对的。InnoDB 是以聚集索引的顺序来存储的,对于 InnoDB 来说,二级索引在叶子节点中所保存的是行的主键信息,如果是用二级索引查询数据,在查找到相应的键值后,还需通过主键进行二次查询才能获取我们真实所需要的数据。由于覆盖索引是按键值的顺序存储的,对于 I/O 密集型的范围查找来说,对比随机从磁盘读取每一行的数据 I/O 要少的多,因此利用覆盖索引在访问时也可以把磁盘的随机读取的 I/O 转变成索引查找的顺序 I/O。
2024-09-14 08:52:35 405
原创 10.索引下推
10.1.什么是索引下推?(1)索引下推 (Index Condition Pushdown, ICP) 是 MySQL 5.6 中新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式。(2)如果没有 ICP,存储引擎会遍历索引以定位基表中的行,并将它们返回给 MySQL 服务器,由 MySQL 服务器评估 WHERE 后面的条件是否保留行。
2024-09-14 08:49:45 482
原创 其它查询优化策略
12.1.EXISTS 和 IN 的区分问题:不太理解哪种情况下应该使用 EXISTS,哪种情况应该用 IN。选择的标准是看能否使用表的索引吗?回答:索引是个前提,其实选择与否还是要看表的大小。你可以将选择的标准理解为小表驱动大表。在这种方式下效率是最高的。① 当 A 小于 B 时,用 EXISTS。② 当 B 小于 A 时用 IN,因为实现的逻辑类似于:for i in Bfor j in A123哪个表小就用哪个表来驱动,A 表小就用 EXISTS,B 表小就用 IN。
2024-09-14 08:47:25 337
原创 淘宝数据库的主键是如何设计的?
聊一个实际问题:淘宝数据库的主键是如何设计的?某些错的离谱的答案还在网上年复一年的流传着,甚至还成为了所谓的 MySQL 军规。其中,一个最明显的错误就是关于 MySQL 的主键设计。大部分人的回答如此自信:用 8 字节的 BIGINT 做主键,而不要用 INT。错!这样的回答,只站在了数据库这一层,而没有从业务的角度思考主键。主键就是一个自增 ID 吗?用自增做主键,架构设计上可能连及格都拿不到!
2024-09-14 08:46:09 965
原创 [000-002-01].排序优化
问题:在 WHERE 条件字段上加索引,但是为什么在 ORDER BY 字段上还要加索引呢?回答:在 MySQL 中,支持两种排序方式,分别是 FileSort 和 Index 排序:① 在 lndex 排序中,索引可以保证数据的有序性,不需要再进行排序,效率更高。② FileSort 排序则一般在内存中进行排序,占用 CPU 较多。如果待排结果较大,会产生临时文件 I/O 到磁盘进行排序的情况,效率较低。
2024-09-14 08:42:56 753
原创 子查询优化
(1)MySQL 从 4.1 版本开始支持子查询,使用子查询可以进行 SELECT 语句的嵌套查询,即一个 SELECT 查询的结果作为另一个 SELECT 语句的条件。① 执行子查询时,MySQL 需要为内层查询语句的查询结果建立一个临时表,然后外层查询语句从临时表中查询记录。连接查询不需要建立临时表,其速度比子查询要快,如果查询中使用索引的话,性能就会更好。② 子查询的结果集存储的临时表,不论是内存临时表还是磁盘临时表都不会存在索引,所以查询性能会受到一定的影响。但是子查询的执行效率不高。
2024-09-14 08:28:49 243
原创 第5章:隔离和降级
线程隔离(仓壁模式)降级熔断在application.yml中配置:feign.sentienl.enable=true给FeignClient编写FallbackFactory并注册为Bean将FallbackFactory配置到FeignClient线程隔离的两种手段是?信号量隔离线程池隔离信号量隔离的特点是?基于计数器模式,简单,开销小线程池隔离的特点是?基于线程池模式,有额外开销,但隔离控制更强默认情况下,发生限流、降级、授权拦截时,都会抛出异常到调用方。
2024-09-13 20:46:36 785
原创 Sentinue功能-流控规则:
雪崩问题虽然有四种方案,但是限流是避免服务因突发的流量而发生故障,是对微服务雪崩问题的预防。1.当请求进入微服务时,首先会访问DispatcherServlet,然后进入Controller、Service、Mapper,这样的一个调用链就叫做簇点链路2.簇点链路中被监控的每一个接口就是一个资源3.默认情况下Sentinel会监控SpringMVC的每一个端点(Endpoint,也就是controller中的方法4.流控、熔断等都是针对簇点链路中的资源来设置的。
2024-09-13 20:44:13 784
原创 [000-01-008].第05节:OpenFeign高级特性-日志打印功能
【代码】[000-01-008].第05节:OpenFeign高级特性-日志打印功能。
2024-09-13 20:36:35 421
原创 [000-01-008].第05节:OpenFeign高级特性-请求/响应压缩
【代码】[000-01-008].第05节:OpenFeign高级特性-请求/响应压缩。
2024-09-13 20:25:52 326
原创 [000-01-008].第05节:OpenFeign高级特性-默认HttpClient修改
只是为了更快的看到效果,所以说就注释了重试机制,此配置不是必须的。
2024-09-13 20:20:44 257
原创 [000-01-008].第05节:OpenFeign高级特性-超时控制
1.默认OpenFeign客户端等待60秒钟,但是服务端处理超过规定时间会导致Feign客户端返回报错。为了避免这样的情况,有时候我们需要设置Feign客户端的超时控制,默认60秒太长或者业务时间太短都不好2.yml文件中开启配置::连接超时时间:请求处理超时时间。
2024-09-13 20:08:26 301
原创 [001-02-001]. 第07-01节:线程的通信
1.在当前线程中调用方法:对象名.wait()2.使当前线程进入等待(某对象)状态 ,直到另一线程对该对象发出 notify (或notifyAll) 为止。3.调用方法的必要条件:当前线程必须具有对该对象的监控权(加锁)4.调用此方法后,当前线程将释放对象监控权 ,然后进入等待5.在当前线程被notify后,要重新获得监控权,然后从断点处继续代码的执行。
2024-09-13 00:11:32 262
原创 [001-02-001]. 第07-02节:线程的创建与使用
1.start():启动当前线程;调用当前线程的run()2.run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中3.:是个静态方法,返回执行当前代码的线程4.getName()获取当前线程的名字5.setName()设置当前线程的名字6.yield():释放当前cpu的执行权7.join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态。8.stop():已过时。当执行此方法时,强制结束当前线程。
2024-09-12 22:46:51 689
原创 [001-02-001]. 第07-03节:理解线程的安全问题
1.不同的线程分别占用对方需要的同步资源不放弃都在等待对方放弃自己需要的同步资源,就形成了线程的死锁2.出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续。
2024-09-12 22:43:22 860
原创 第15-02章:理解Class类并获取Class实例
在运行阶段,通过调用运行时类的对象,通过。在加载阶段,通过调用运行时类的属性。根据下图类加载的过程,我们。通过Class的静态方法。类加载(4种加载器)也继承Object类。
2024-09-12 16:42:42 849
原创 【无标题】
1.有了Class对象之后,去创建类的对象时候,在调用Class对象的方法,有两项要求:1)类必须有一个无参数的构造器;2)类的构造器的访问权限需要足够。
2024-09-12 16:39:29 363
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人