自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(392)
  • 资源 (28)
  • 收藏
  • 关注

原创 java 设计模式 深入理解

java 设计模式 深入理解在学习设计模式的时候,以前学习了下总以为理解了,但是在实际工作中基本上用不起来。在学习拆书后,想到用讲的方式去学习和思考的时候,要想讲清楚,就要深入理解其中的原理。在重新整理和写下来的过程中,感觉基本上是掌握了,在工作中遇到的时候,也慢慢也去考虑了。教是最好的学。在整理写的时候,也会有不同的思考。创建型抽象工厂模式工厂方法模式建造者模式原型模式-X单态模式-X结构型适配器模式-X桥接模式组合模式外观模式装饰者模式-X享...

2024-03-21 12:48:15 1355 2

原创 第9章-4 主从复制

主从复制的原理        1,数据库有个bin-log二进制文件,记录了所有sql语句。        2,我们的目标就是把主数据库的bin-log文件的sql语句复制过来。        3,让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。        4,下面的主从配置就是围绕这个原理配置        5,具体需要三个线程来操作:                1,i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay l

2025-05-20 09:26:52 537

原创 第9章-3 复制管理和维护

MySQL复制是其内置的一把“瑞士军刀”,极大地增加了MySQL的功能范围和实用性。事实上,这可能是MySQL如此迅速流行的主要原因之一。        尽管复制有许多限制和需要注意的事项,但事实证明,其中大多数相对来说都不重要或容易避免。有些缺点只是高级功能的特殊行为,大多数人不会用到,但对少数需要它们的用户来说非常有用。        在复制方面,你的座右铭应该是“保持简单”。除非确实需要,否则不要做任何花哨的事情,例如,使用环形复制或复制过滤器。应该简单地使用复制来镜像数据的整个副本,包括所有

2025-05-20 09:11:58 235

原创 第9章-2 复制切换

切换的最常见原因是某些维护事件,包括安全补丁、内核更新,有时候甚至只是重新启动一下MySQL,因为有一些配置选项更改后需要重新启动才能生效。这种类型的切换被称为计划内切换。要成功地执行此类切换,需要完成以下步骤:        1. 确定将哪个副本切换为新的源。这通常是一个包含所有数据的副本。这就是要操作的目标。        2. 检查延时,确保延时在秒级别。        3. 通过设置super_read_only停止数据写入源服务器。 [6]        4. 等待副本与目标完

2025-05-19 08:59:54 524

原创 第9章-1 复制

 在启用半同步复制后,源在完成每个事务提交时,都需要确保事务至少被一个副本所接收。(所需的完成确认的副本数量是一个可配置的选项(rpl_semi_sync_source_wait_for_replica_count)。在一个更大的集群中,可以考虑在提交事务之前有两个甚至三个副本完成确认)需要确认副本已收到并成功将其写入自己的中继日志(但不一定应用到本地数据)。        由于每个事务都必须等待其他节点的响应,因此该功能会给服务器执行的每个事务都增加额外的延迟。需要根据实际情况考虑是否开启该选项

2025-05-19 08:57:54 498

原创 第8章-11 索引的形成过程

熟悉索引的形成过程,有利于更进一步了解索引,如何使用索引提升查询效率

2025-05-16 10:11:03 682

原创 第8章-10 慢日志查询

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中,ong_query_time的默认值为10,意思是运行10S以上的语句。就会被认作是慢查询。        默认情况下,Mysq数据库并不启动慢查询日志,需要我们手动来设置这个参数,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。

2025-05-14 10:46:35 774

原创 第8章-9 优化技巧2

索引选择性是指不重复的索引值与表总记录数的比值,其范围(0,1]。通过索引的选择性,可以确定该索引是否合理(70%)

2025-05-14 10:32:10 712

原创 第8章-8 优化技巧1

  平时使用的时候,注意排序和分页的处理,尤其是大数据分页的,最直接的就说限制返回的数量,而不是全部数据。 小表驱动大表这个使用的时候根据实际的数据量去判断,一搬字典表,区域表,这些是小表,业务表是大表。

2025-05-13 09:34:51 757

原创 第8章-7 explain

explain是了解索引执行情况,要熟悉里面常见字段的含义,是否索引,扫描的行数等等

2025-05-13 09:17:35 872

原创 第8章-6 索引失效的情况

平时在写sql的时候,要注意索引失效的情况。对于like的模糊查询,确实要用,数据量大,这时候,就要考虑多加一些限制条件,缩小查询范围,再模糊查询;如果不行,就要考虑使用其它方案,比如使用ES查询了

2025-05-12 09:29:05 456

原创 第8章-5 sql的执行顺序

整体过程1,先对多表进行关系,根据条件找出符合条件的记录2,在符合条件的基础上进行再次where条件筛选3,对筛选出来的内容进行分组操作4,分组完成后, 使用having再次筛选出满足条件的记录5,取所满足条件的记录6,对取出的记录进行排序7,最终从取出的记录当中获取多少条记录显示出来

2025-05-12 08:59:30 481

原创 第8章-4 查询性能优化2

如果把创建高性能应用程序比作一个环环相扣的“难题”,除了前面介绍的schema、索引和查询语句设计之外,查询优化应该是解开“难题”的最后一步。要想写一个好的查询,你必须理解schema设计、索引设计等,反之亦然。        理解查询是如何被执行的以及时间都消耗在哪些地方,依然是前面我们介绍的响应时间的一部分。如果再加上一些诸如解析和优化过程的知识,就可以更进一步地理解我们在第7章中讨论的MySQL如何访问表和索引的内容了。这也可从另一个维度帮助你理解MySQL在访问表和索引时查询和索引的关系。  

2025-05-09 09:28:27 957

原创 第8章-3 查询性能优化1

因为服务器没有存储任何统计信息,所以MySQL查询优化器在生成查询的执行计划时,需要向存储引擎获取相应的统计信息。存储引擎则给优化器提供对应的统计信息,包括:每个表或者索引有多少个页面、每个表的每个索引的基数是多少、数据行和索引的长度是多少、索引的分布信息等。优化器根据这些信息来选择一个最优的执行计划。在后面的小节中我们将看到统计信息是如何影响优化器的,帮助你理解MySQL在访问表和索引时查询和索引的关系。        优化通常需要三管齐下:不做、少做、快速地做

2025-05-08 09:03:17 752

原创 第8章-2 查询执行的基础

MySQL 主要分为 Server 层和引擎层,Server 层主要包括连接器、查询缓存、分析器、优化器、执行器,同时还有一个日志模块(binlog),这个日志模块所有执行引擎都可以共用,redolog 只有 InnoDB 有。        查询语句的执行流程如下:权限校验(如果命中缓存)--->查询缓存(mysql8.0后就废弃了)--->分析器--->优化器--->权限校验--->执行器--->引擎

2025-05-08 08:58:31 568

原创 第8章-1 查询性能优化-优化数据访问

在前面的章节中,我们介绍了如何设计最优的库表结构、如何建立最好的索引,这些对于提高性能来说是必不可少的。但这些还不够——还需要合理地设计查询。如果查询写得很糟糕,即使库表结构再合理、索引再合适,也无法实现高性能。查询优化、索引优化、库表结构优化需要齐头并进,一个不落。在获得编写MySQL查询的经验的同时,你还将学习到如何为高效的查询设计表和索引。同样地,你也可以学习到在优化库表结构时会影响到哪些类型的查询。这个过程需要时间,建议大家在学习后面章节的时候多回头看看这些章节的内容。

2025-05-07 14:54:20 1596

原创 第7章-3 维护索引和表

  那么如何判断一个系统创建的索引是合理的呢?一般来说,我们建议按响应时间来对查询进行分析。找出那些消耗最长时间的查询或者那些给服务器带来最大压力的查询,然后检查这些查询的schema、SQL语句和索引结构,判断是否有查询扫描了太多的行,是否做了很多额外的排序或者使用了临时表,是否使用随机I/O访问数据,或者是否有太多回表查询查询那些不在索引中的列的操作。        如果一个查询无法从所有可能的索引中获益,则应该看看是否可以创建一个更合适的索引来提升性能。如果不行,还可以看看是否可以重写该查询,将其

2025-05-07 14:45:24 839

原创 第7章-2 高性能的索引策略

 高效地选择和使用索引有很多种方式,其中有些是针对特殊案例的优化方法,有些则是针对特定行为的优化。(MySQL优化器是一个非常神秘且强大的“装置”,不过还好,它的“强大”应该略胜于“神秘”一筹。鉴于它查找最优执行计划的方式,你应该更多依靠EXPLAIN和具体业务负载情况,来决定最优的执行策略) 使用哪个索引,以及如何评估选择不同索引对性能的影响,则需要持续不断地学习。

2025-05-06 09:14:04 977

原创 第7章-1 索引类型

索引,在MySQL中也叫作键(key),是存储引擎用于快速找到记录的一种数据结构。要想获得好的性能,索引至关重要。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。在数据量较小且负载较低时,缺少合适的索引对性能的影响可能还不明显,但当数据量逐渐增大时,性能会急剧下降(在本书的第4章介绍过,各种固态硬盘在性能上有一些不一样的特点。索引的原则依然成立,相比传统硬盘,在SSD设备上,糟糕的索引带来的负面影响要稍微小一些)。

2025-05-06 09:00:01 783

原创 第5章-3 安全设置

如果运行的是专用数据库服务器,那么可以设置的最佳选项是innodb_dedicated_server,它可以处理90%的性能配置。如果无法使用此选项,那么最重要的两个选项是:● innodb_buffer_pool_size● innodb_log_file_size

2025-04-23 08:37:22 571

原创 第5章-2 配置MySQL的I/O行为

一些配置选项会影响MySQL将数据同步到磁盘和执行恢复的方式。这会涉及I/O操作,因此会极大地影响性能。这些选项还代表了性能和数据安全之间的权衡。一般来说,确保数据立即且一致地写入磁盘的代价是很高的。如果愿意冒磁盘写入操作没有真正写入持久存储的风险,是可以增加并发性和/或减少I/O等待的,但你必须自己决定可以承受多大风险。

2025-04-23 08:33:18 614

原创 aop应用-2-统一日志处理

使用aop注解,统一记录请求参数和日志,便于查询日志。这个时间长了,数据库的日志表的数据会很多,要定期进行清理。

2025-04-22 11:35:35 845

原创 第5章-1 优化服务器设置

本章我们将解释如何为MySQL服务器创建合适的配置文件。这是一个迂回的旅程,有许多兴趣点和可以俯瞰风景的短途旅程。这些短途旅程是必要的。确定合适配置的最短路径并不是从研究配置选项并询问应该设置哪些配置或如何更改它们开始的,也不是从检查服务器行为并询问是否有任何配置选项可以改善它开始的。最好从了解MySQL的内部结构和行为开始。然后,你可以使用这些知识作为如何配置MySQL的指南。最后,你可以将期望的配置与当前配置进行比较,并纠正任何重要和值得修改的差异。

2025-04-22 09:39:33 706

原创 第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 910

原创 第6章-2 schema管理

请记住以下指导原则:        ● 尽量避免在设计中出现极端情况,例如,强制执行非常复杂的查询或者包含很多列的表设计(很多的意思是介于有点多和非常多之间)。        ● 使用小的、简单的、适当的数据类型,并避免使用NULL,除非确实是对真实数据进行建模的正确方法。        ● 尝试使用相同的数据类型来存储相似或相关的值,尤其是在联接条件中使用这些值时。        ● 注意可变长度字符串,它可能会导致临时表和排序的全长内存分配不乐观。        ● 如果可能的话,尝

2025-04-21 08:57:21 547

原创 第6章-1 数据类型

良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要运行的特定查询设计schema。这通常需要权衡各种因素。例如,反范式的schema可以加速某些类型的查询,但同时可能减慢其他类型的查询。添加计数器和汇总表是一个优化查询的好方法,但它们的维护成本可能很高。MySQL的某些独有的特性和实现细节对性能的影响也很大。

2025-04-21 08:54:28 1077

原创 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 577

原创 第4章-5 linux 网络管理

三次握手,其实就是主动打开方,发送 SYN,表示要建立连接,然后被动打开方对此进行确认,然后主动方收到确认之后,对确认进行确认;

2025-04-16 08:53:56 710

原创 第4章-4 linux 磁盘IO

对于随机读多的系统而言,磁盘很容易成为瓶颈所在,一般的优化就是使用 RAID或者换 SSD

2025-04-16 08:49:40 825

原创 第4章-3 linux 内存管理

在概念上来讲,虚拟内存被组织为由存放在磁盘上的 N 个连续的字节大小的单元组成的数组。每个字节都有唯一的虚拟地址,作为到数组的索引(现在我们知道了虚拟内存虽然叫做内存,但其实它并不在内存中,而是磁盘中的一块空间)。虚拟内存与物理内存构成了一个缓存系统。虚拟内存位于较低层,物理内存位于较高层。虚拟内存上的数据可以被缓存到主存中。VM 系统将虚拟内存分割为称为虚拟页(Virtual Page)的大小固定的块,每个虚拟页的大小为 P=pow(2,p)字节。

2025-04-15 08:01:13 1059

原创 第4章-2 CPU 优化

操作系统和 CPU 硬件配合,系统不繁忙的时候,为了节约电能和降低温度,它会将 CPU降频进入节能模式。在 server 环境的 CPU 一定要关闭节能模式,节能模式不适应于服务器环境。关闭 CPU 的节能模式有两种方法:        1) 在 BIOS 中进行设置,彻底关闭;        2) 关闭 Linux 中的服务 cpuspeed 和 irqbalance;

2025-04-15 07:56:20 630

原创 第4章-1 操作系统和硬件优化

带有旋转盘片和摆动磁头的硬盘驱动器有其固有的局限性和特性,这是所涉及的物理现象的后果。固态存储也是如此,它建立在闪存之上。不要以为固态存储很简单。在某些方面,它实际上比硬盘更复杂。闪存的局限性非常严重,很难克服,因此典型的固态设备具有复杂的体系结构,包含大量抽象、缓存和专有的“魔法”。闪存最重要的特点是,它可以被快速地多次读取,而且以很小的单元读取数据,但写入则要困难得多。只有进行特殊的擦除操作之后,存储单元才能被重新写入数据,并且每次擦除的块大小较大(例如512K B)。

2025-04-14 16:47:26 612

原创 处理Long类型长度超长导致前端精度丢失问题

如果是只有某些指定数据进行转换,就直接加注解的方式,要全局的话,就用全局的配置去处理。

2025-04-14 16:42:28 491

原创 第3章-3 Performance Schema常见使用

把Performance Schema常见的使用做一个汇总,后续有遇到会继续补充。

2025-04-10 09:07:04 545

原创 第3章-2 Performance Schema 使用

Performance Schema是一个经常受到批评的特性。早期版本的MySQL对其的实现不够理想,导致资源消耗较高。通常的建议是干脆关掉它。        这也被认为是难以理解的。只是启用了一些插桩代码,这些代码用于记录数据并将其提交给消费者表。消费者表是一些内存表,需要使用标准SQL语句查询数据,获取信息。了解了Performance Schema如何管理自己的内存后,你就能认识到MySQL并没有泄漏内存,它只是将消费者数据保存在内存中,这些内存只有在MySQL重启时才会释放。

2025-04-09 07:06:33 1082

原创 第3章-1 Performance Schema

Performance Schema提供了有关MySQL服务器内部运行的操作上的底层指标。两个概念。第一个概念是程序插桩程序插桩在MySQL代码中插入探测代码,以获取我们想了解的信息。例如,如果想收集关于元数据锁的使用情况,需要启用wait/lock/meta-data/sql/mdl这个插桩。第二个概念是消费者表(consumer),指的是存储关于程序插桩代码信息的表。如果我们为查询模块添加插桩,相应的消费者表将记录诸如执行总数、未使用索引的次数、花费的时间等信息。

2025-04-09 07:01:56 703

原创 第2张-2 度量长期性能

在规划需要长期监控的指标时,为所有使用自增主键的表监控剩余整数空间是一个简单的操作,但几乎可以肯定的一点是,它会在将来为你避免一些重大事故,因为可以提前预测需要更大的键空间。将数据分解为可管理的小块,这项工作不是在数据对于一个集群来说太大的时候才开始的,而是在此之前,当你还在为提供成功的客户体验确定目标时开始的。如果你的数据库达到一定规模,从备份恢复所需的时间将超过恢复业务关键功能所需的时间,那么即使其他一切运行正常,也需要检查调整的MTTR目标,更改“关键功能”的定义,或找到缩短备份还原时间的方法。

2025-04-08 07:05:29 598

原创 第2章-1 可靠性工程世界中的监控

在讨论如何衡量客户对数据库集群的性能是否满意之前,我们必须首先知道目标是什么,并使用通俗的说法来表述这些目标。这里有一些问题,可以作为组织中确定这些目标的引导话题:● 衡量成功的合理指标是什么?● 客户和我们的业务需求可以接受这些指标的哪些值?● 在什么情况下会被视为处于降级状态?● 什么时候处于完全失败的状态,需要尽快补救?在某些情况下这些问题的答案是显而易见的(例如,源数据库故障,此时无法进行任何写入操作,这会导致业务暂停运作)。

2025-04-08 07:02:52 878

原创 java 正则表达式优化

正则表达式使用一些特定的元字符来检索、匹配以及替换符合规则的字符串。构造正则表达式语法的元字符,由普通字符、标准字符、限定字符(量词)、定位字符(边界字符)组成。

2025-04-06 17:02:48 1030

原创 第1章-8 转换存储引擎

转换表引擎的影响是很大的,优先使用第三种方式:重新创建和插入数据。转换表引擎平时基本不用,更多是提供一个处理思路。

2025-04-06 16:55:31 902

Vue.js devtools 6.6.1

Vue.js devtools 6.6.1

2024-10-29

SQLyog软件和使用说明

SQLyog软件和使用说明

2024-01-18

Free MyBatis plugin 旧版 2019

Free MyBatis plugin 旧版 2019

2022-09-01

基于图像的颜色内容(HSV)的检索

基于图像的颜色内容(HSV)的检索 使用matlab运行

2022-04-14

基于颜色的图像内容检索MATLAB实现

基于颜色的图像内容检索MATLAB实现

2022-04-14

ajax+mysql+jsp省市区三级联动显示

ajax+mysql+jsp省市区三级联动显示

2022-04-14

动态初始化类+参数泛型化+统一返回值.zip

动态初始化类+参数泛型化+统一返回值 的代码

2021-12-20

Navicat Keygen Patch.zip

Navicat Keygen Patch

2021-12-10

计算处理时长 日期计算 SpringEl.zip

计算处理时长 使用SpringEl

2021-10-29

html导出pdf 中文字体

中文字体,导出中文转换

2021-09-30

baseMapper 使用案例.zip

baseMapper简化数据库操作的案例

2021-06-23

DownLoadFileUtils.java

java 实现从url路径中下载文件到本地

2021-05-14

easyexcel 动态导出复杂表头.zip

easyexcel 动态导出复杂表头 例子 带cellRange

2021-05-11

spring-framework-4.2.x.zip

spring-framework-4.2 完整代码

2021-03-18

springResource.zip

spring 源码 包括aop, expreeesion ,context等内容

2021-03-11

复杂表头 多个sheet内容 代码.zip

poi导出复杂表头,多个sheet的内容

2021-03-05

多个sheet内容 代码.zip

poi 多个sheet 内容导出

2021-03-04

多表头内容 代码.zip

poi 多表头内容导出 例子

2021-03-04

poi 导出多表头

poi 导出多表头 手动拼接复杂的表头

2021-03-03

POI读取excel的内容.zip

JAVA IO操作 POI读取excel的内容

2021-02-28

Cron表达式解析 翻译为中英文.zip

Java Cron表达式解析 翻译为中文和英文

2021-02-26

Java Bean对象和Map相互转换.zip

Java Bean对象和Map相互转换 使用Fastjson 和BeanMap 两种方式进行转换

2021-02-26

Expression4J引用的jar包和文档.zip

Expression4J 引用的jar包和文档

2021-02-21

EmEditorPortable.zip

EmEditorPortable 大文件编辑器 超过100M的文件快速打开

2021-02-20

PowerDesigner165_不过期的方法.zip

PowerDesigner 不过期的方法

2021-02-20

plsql11 安装和配置.zip

psql 安装包,配置跟oracle的连接文档

2021-02-20

curl windows.zip

curl windows 使用curl 进行请求

2021-02-19

tabbed postman.rar

网页版 tabbed postman 使用文档

2021-02-19

AXIS2生成客户端代码教程.zip

AXIS2生成客户端代码(myeclipse)及文档教程

2021-02-19

idea checkstyle.zip

idea checkStyle 代码检测关联的内容

2021-02-19

Twaver-html5.zip

Twaver学习案例的例子

2021-02-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除