- 博客(374)
- 资源 (28)
- 收藏
- 关注

原创 java 设计模式 深入理解
java 设计模式 深入理解在学习设计模式的时候,以前学习了下总以为理解了,但是在实际工作中基本上用不起来。在学习拆书后,想到用讲的方式去学习和思考的时候,要想讲清楚,就要深入理解其中的原理。在重新整理和写下来的过程中,感觉基本上是掌握了,在工作中遇到的时候,也慢慢也去考虑了。教是最好的学。在整理写的时候,也会有不同的思考。创建型抽象工厂模式工厂方法模式建造者模式原型模式-X单态模式-X结构型适配器模式-X桥接模式组合模式外观模式装饰者模式-X享...
2024-03-21 12:48:15
1354
2
原创 第5章-3 安全设置
如果运行的是专用数据库服务器,那么可以设置的最佳选项是innodb_dedicated_server,它可以处理90%的性能配置。如果无法使用此选项,那么最重要的两个选项是:● innodb_buffer_pool_size● innodb_log_file_size
2025-04-23 08:37:22
485
原创 第5章-2 配置MySQL的I/O行为
一些配置选项会影响MySQL将数据同步到磁盘和执行恢复的方式。这会涉及I/O操作,因此会极大地影响性能。这些选项还代表了性能和数据安全之间的权衡。一般来说,确保数据立即且一致地写入磁盘的代价是很高的。如果愿意冒磁盘写入操作没有真正写入持久存储的风险,是可以增加并发性和/或减少I/O等待的,但你必须自己决定可以承受多大风险。
2025-04-23 08:33:18
507
原创 第5章-1 优化服务器设置
本章我们将解释如何为MySQL服务器创建合适的配置文件。这是一个迂回的旅程,有许多兴趣点和可以俯瞰风景的短途旅程。这些短途旅程是必要的。确定合适配置的最短路径并不是从研究配置选项并询问应该设置哪些配置或如何更改它们开始的,也不是从检查服务器行为并询问是否有任何配置选项可以改善它开始的。最好从了解MySQL的内部结构和行为开始。然后,你可以使用这些知识作为如何配置MySQL的指南。最后,你可以将期望的配置与当前配置进行比较,并纠正任何重要和值得修改的差异。
2025-04-22 09:39:33
641
原创 第6章-3 数据库设计
指数是有符号整数,而有符号整数的计算是比无符号整数麻烦。float的指数部分是8位,IEEE规定这个指数的取值范围是 -126到+127,为了消除负数带来的计算上的影响(比如比较大小,加减法等),在实际存储的时候,给指数做一个映射(加上一个偏移量),即float的指数偏移量为127(double的偏移量是1023)。varchar类型是变长的, 仅分配必要的存储空间,但varchar需要使用1或2个额外字节记录字符串的长度。指数如果是6,则实际存储的是6+127=133,即把133转换为二进制之后再存储。
2025-04-22 09:36:17
889
原创 第6章-2 schema管理
请记住以下指导原则: ● 尽量避免在设计中出现极端情况,例如,强制执行非常复杂的查询或者包含很多列的表设计(很多的意思是介于有点多和非常多之间)。 ● 使用小的、简单的、适当的数据类型,并避免使用NULL,除非确实是对真实数据进行建模的正确方法。 ● 尝试使用相同的数据类型来存储相似或相关的值,尤其是在联接条件中使用这些值时。 ● 注意可变长度字符串,它可能会导致临时表和排序的全长内存分配不乐观。 ● 如果可能的话,尝
2025-04-21 08:57:21
529
原创 第6章-1 数据类型
良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要运行的特定查询设计schema。这通常需要权衡各种因素。例如,反范式的schema可以加速某些类型的查询,但同时可能减慢其他类型的查询。添加计数器和汇总表是一个优化查询的好方法,但它们的维护成本可能很高。MySQL的某些独有的特性和实现细节对性能的影响也很大。
2025-04-21 08:54:28
1062
原创 Caused by: feign.RetryableException: Connect to user-service:80 [user-service/192.168.129.12] failed
如果遇到feign请求失败的情况(之前都是正常的),检查下服务上配置的host的地址。如果不是默认的nacos,比如用的是nacos.k8s命名空间,那可能导致服务注册有问题,服务之间无法直接调用。因为nacos要开启鉴权,调整了项目里面gradle、springCloud,springBoot和nacos客户端引用的版本(也不能升得太高,不然无法启动)。检查了下,并没有80端口,用户中心的服务设置的端口是:8793。至于为啥这样的写法会连接不上,没理解过来。如果服务有开放端口的,就改成具体的ip地址。
2025-04-16 15:53:32
556
原创 第4章-5 linux 网络管理
三次握手,其实就是主动打开方,发送 SYN,表示要建立连接,然后被动打开方对此进行确认,然后主动方收到确认之后,对确认进行确认;
2025-04-16 08:53:56
690
原创 第4章-3 linux 内存管理
在概念上来讲,虚拟内存被组织为由存放在磁盘上的 N 个连续的字节大小的单元组成的数组。每个字节都有唯一的虚拟地址,作为到数组的索引(现在我们知道了虚拟内存虽然叫做内存,但其实它并不在内存中,而是磁盘中的一块空间)。虚拟内存与物理内存构成了一个缓存系统。虚拟内存位于较低层,物理内存位于较高层。虚拟内存上的数据可以被缓存到主存中。VM 系统将虚拟内存分割为称为虚拟页(Virtual Page)的大小固定的块,每个虚拟页的大小为 P=pow(2,p)字节。
2025-04-15 08:01:13
1049
原创 第4章-2 CPU 优化
操作系统和 CPU 硬件配合,系统不繁忙的时候,为了节约电能和降低温度,它会将 CPU降频进入节能模式。在 server 环境的 CPU 一定要关闭节能模式,节能模式不适应于服务器环境。关闭 CPU 的节能模式有两种方法: 1) 在 BIOS 中进行设置,彻底关闭; 2) 关闭 Linux 中的服务 cpuspeed 和 irqbalance;
2025-04-15 07:56:20
621
原创 第4章-1 操作系统和硬件优化
带有旋转盘片和摆动磁头的硬盘驱动器有其固有的局限性和特性,这是所涉及的物理现象的后果。固态存储也是如此,它建立在闪存之上。不要以为固态存储很简单。在某些方面,它实际上比硬盘更复杂。闪存的局限性非常严重,很难克服,因此典型的固态设备具有复杂的体系结构,包含大量抽象、缓存和专有的“魔法”。闪存最重要的特点是,它可以被快速地多次读取,而且以很小的单元读取数据,但写入则要困难得多。只有进行特殊的擦除操作之后,存储单元才能被重新写入数据,并且每次擦除的块大小较大(例如512K B)。
2025-04-14 16:47:26
596
原创 第3章-2 Performance Schema 使用
Performance Schema是一个经常受到批评的特性。早期版本的MySQL对其的实现不够理想,导致资源消耗较高。通常的建议是干脆关掉它。 这也被认为是难以理解的。只是启用了一些插桩代码,这些代码用于记录数据并将其提交给消费者表。消费者表是一些内存表,需要使用标准SQL语句查询数据,获取信息。了解了Performance Schema如何管理自己的内存后,你就能认识到MySQL并没有泄漏内存,它只是将消费者数据保存在内存中,这些内存只有在MySQL重启时才会释放。
2025-04-09 07:06:33
1061
原创 第3章-1 Performance Schema
Performance Schema提供了有关MySQL服务器内部运行的操作上的底层指标。两个概念。第一个概念是程序插桩程序插桩在MySQL代码中插入探测代码,以获取我们想了解的信息。例如,如果想收集关于元数据锁的使用情况,需要启用wait/lock/meta-data/sql/mdl这个插桩。第二个概念是消费者表(consumer),指的是存储关于程序插桩代码信息的表。如果我们为查询模块添加插桩,相应的消费者表将记录诸如执行总数、未使用索引的次数、花费的时间等信息。
2025-04-09 07:01:56
687
原创 第2张-2 度量长期性能
在规划需要长期监控的指标时,为所有使用自增主键的表监控剩余整数空间是一个简单的操作,但几乎可以肯定的一点是,它会在将来为你避免一些重大事故,因为可以提前预测需要更大的键空间。将数据分解为可管理的小块,这项工作不是在数据对于一个集群来说太大的时候才开始的,而是在此之前,当你还在为提供成功的客户体验确定目标时开始的。如果你的数据库达到一定规模,从备份恢复所需的时间将超过恢复业务关键功能所需的时间,那么即使其他一切运行正常,也需要检查调整的MTTR目标,更改“关键功能”的定义,或找到缩短备份还原时间的方法。
2025-04-08 07:05:29
592
原创 第2章-1 可靠性工程世界中的监控
在讨论如何衡量客户对数据库集群的性能是否满意之前,我们必须首先知道目标是什么,并使用通俗的说法来表述这些目标。这里有一些问题,可以作为组织中确定这些目标的引导话题:● 衡量成功的合理指标是什么?● 客户和我们的业务需求可以接受这些指标的哪些值?● 在什么情况下会被视为处于降级状态?● 什么时候处于完全失败的状态,需要尽快补救?在某些情况下这些问题的答案是显而易见的(例如,源数据库故障,此时无法进行任何写入操作,这会导致业务暂停运作)。
2025-04-08 07:02:52
863
原创 java 正则表达式优化
正则表达式使用一些特定的元字符来检索、匹配以及替换符合规则的字符串。构造正则表达式语法的元字符,由普通字符、标准字符、限定字符(量词)、定位字符(边界字符)组成。
2025-04-06 17:02:48
1016
原创 第1章-6 InnoDB引擎
注意:在innodb中只有利用索引的更新,删除操作,才可以使用行级锁。不能使用索引的写操作则是表锁,在实际开发的时候,如果遇到写操作,一定要确保update/delete语句的条件,要能够使用索引,否则就会锁表,程序不具备并发性。尽量避免全表扫描,因为会造成表锁,尤其是大数据量的更容易造成锁表。
2025-04-05 08:57:23
1084
原创 第1章-5 事务
事务这块的设置,感觉平时开发基本用不上,先了解,后续又碰到,再深究。平时在生产操作的时候,主要先备份数据。update 和 delete的sql语句,尽量要保持一行,以免执行的时候只执行了部分,导致出问题。上一章《第1章-4 并发控制下一章《
2025-04-03 08:45:09
831
原创 第1章-4 并发控制
在用oracle的时候,经常出现因为修改语句的时候,没有加 for update 导致锁表,mysql倒是没怎么遇到过。平时更多的是遇到锁表,就行查询哪些锁表了,杀掉锁表进程,这个多一些。
2025-04-03 08:41:35
673
原创 第1章-2 多版本/复制/innodb引擎
READUNCOMMITTED与MVCC不兼容 (MVCC没有正式的标准定义,不同的存储引擎和数据库实现的方式都极不相同,没有人能说任何一个是错的) ,是因为查询不会读取适合其事务版本的行版本,而是不管怎样都读最新版本。Oracle官方在InnoDB引擎上加大了投入,这使得MySQL有了一些重大改进,例如原子DDL,更完善的online DDL,更强大的崩溃恢复能力,以及更安全的部署操作。缺点是存储引擎必须在每一行中存储更多的数据,在检查行时需要做更多的工作,并处理一些额外的内部操作。
2025-04-02 08:47:31
883
原创 第1章-1 MySQL架构
MySQL的架构特点使其可以被应用在很多场景中。尽管它并不完美,但足够灵活,从小型的个人网站到大型的企业应用它都可以工作得很好。为了最大限度地使用MySQL,你需要了解它的设计,以便能够用其所长,避其所短。本章概述了MySQL服务端的架构、各种存储引擎之间的主要区别,以及这些区别的重要性。我们试图通过简化细节和演示案例来解释MySQL的原理。这些讨论无论是对数据库一无所知的新手,还是熟知其他数据库的专家,都十分有用。
2025-04-01 08:38:49
921
原创 0 高性能MySQL 前言和目录
这次主要以《高性能MySQL(第4版)》为基础,先弄书本的内容,然后对书本的内容,进行拆分和进一步的延伸和扩展。对mysql有进一步的了解。这次主要内容是平时开发用得比较多的部分:了解sql的执行顺序,索引的形成, 索引在什么时候不生效,如何进行优化,schema常见的设置和使用等。对于复制,备份与恢复等,数据库dba用的部分,基本就按书本的来。
2025-04-01 08:38:10
244
原创 mysql 周一开始判断日期是当月第几周
把一个大问题进行拆分,逐个攻破,再汇合。现在AI也多用起来,先自己思考,记录下来,再跟AI的做比较,这样可能有不同的收获。
2025-03-31 08:45:47
362
原创 java8 构建通用树
使用java8构建树形,可读性会更好。不过对于list map的这种,反正也是相对固定的,单独写一个。对于bean类型的,就更为通用。写一个通用的树形,后续遇到不同的树形的,就可以统一处理了。PS:现在ai 应用广泛,学习新内容的时候,不知道怎么应用,就可以直接搜,这样减少了查找的,针对性也更好。
2025-01-21 15:49:28
278
原创 springEl 构建通用树
如果相似的代码出现多次,就可以考虑做一个通用的处理。SpringEL的功能很强大,不过这个用java8的特性去处理,看起来更直观。学习了SpringEl,就想办法多应用,遇到不懂的再学习,这样才会学得更深,才容易举一反三。
2025-01-21 14:30:27
556
原创 java 对人名和电话 脱敏-replaceAll
对数据进行脱敏,可以考虑根据配置规则,这样可以动态修改规则,指定字段内容进行脱敏,会比较方便。
2024-11-01 08:15:02
912
原创 java 正则匹配电话并脱敏
因为电话是数字组成的,这种好匹配,不像中文名称。正则匹配更为麻烦,但是也是提供一种处理的思路。电话脱敏,直接用replace更为简便。
2024-10-31 15:34:56
661
原创 chrome 安装vuejs
因为网络的限制,谷歌插件没法直接下载,需要进行下载,然后导入。如果是crx格式的,需要修改格式,再解压,再导入进去。
2024-10-30 16:17:45
1491
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人