自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 MYSQL 七、mysql 日志与备份

中继日志只在主从服务器架构的从服务器上存在。从服务器为了与主服务器保持一致,要从主服务器读取二进制日志的内容,并且把读取到的信息写入本地的日志文件中,这个从服务器本地的日志文件就叫中继日志。然后,从服务器读取中继日志,并根据中继日志的内容对从服务器的数据进行更新,完成主 从服务器的 数据同步。搭建好主从服务器之后,中继日志默认会保存在从服务器的数据目录下。从服务器名 -relay-bin.序号。从服务器名 -relaybin.index,用来定位当前正在使用的中继日志。在实际工作中,我们常常将。

2024-07-22 19:19:58 836

原创 MYSQL 六、mysql锁 2(多版本并发控制)

MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样 在做查询的时候就不用等待另一个事务释放锁。MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用的(大家可以参考相关的DBMS文档)。

2024-07-21 21:54:21 632

原创 MYSQL 六、mysql锁 1

在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的 资源。为保证数据的一致性,需要对并发操作进行控制,因此产生了锁。同时锁机制也为实现MySQL 的各个隔离级别提供了保证。锁冲突也是影响数据库并发访问性能的一个重要因素。所以锁对数据库而言显得尤其重要,也更加复杂。

2024-07-19 12:40:12 1020

原创 MYSQL 五、mysql事务 2(MySQL事务日志)

锁机制重做日志回滚日志恢复操作"物理级别"逻辑操作事务的回滚逆操作一致性非锁定读。

2024-07-18 22:13:44 558

原创 MYSQL 五、mysql事务 1(事务基础知识)

ACID是事务的四大特征,在这四个特性中,原子性是基础,隔离性是手段,一致性是约束条件, 而持久性是我们的目的。数据库事务,其实就是数据库设计者为了方便起见,把需要保证。

2024-07-16 19:42:41 828

原创 MYSQL 四、mysql进阶 10(数据库其它调优策略)

如果MySql的连接数达到 max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即 back_log,如果等待连接的数量超过back_log,将不被授予连接资源,将会报错。磁盘的I/O能力,也就是它的寻道能力,目前的SCSI高速旋转的是7200转/分钟,这样的速度,一旦访问的用户量上去,磁盘的压力就会过大,如果是每天的网站pv (page view) 在150w,这样的一般的配置就无法满足这样的需求了。当然,这个值不是越大越好,它的大小取决于内存 的大小。

2024-07-16 13:02:57 753

原创 MYSQL 四、mysql进阶 9(数据库的设计规范)

可以理解为,一张数据表的设计结 构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

2024-07-15 12:01:40 1029

原创 MYSQL 四、mysql进阶 8(索引优化与查询优化)

关于数据库调优的知识非常分散。不同的DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。虽然SQL查询优化的技术有很多,但是大方向上完全可以分成。

2024-07-10 18:39:57 410

原创 MYSQL 四、mysql进阶 7(性能分析工具的使用)

我们可以通过观察了解数据库整体的运行状态,通过性能分析工具可以让我们了解执行慢的SQL都有哪些,查看具体的SQL执行计划,甚至是SQL执行中的每一步的成本代价,这样才能定位问题所在,找到了问题,再采取相应的行动。字母 S 的部分代表观察(会使 用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。SHOW [GLOBAL|SESSION] STATUS LIKE '参数';在MySQL中,可以使用。行动(Action)

2024-07-08 18:39:44 435 1

原创 MYSQL 四、mysql进阶 6(索引的创建与设计原则)

使用参数FULLTEXT 可以设置索引为全文索引,在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值,全文索引只能创建在 CHAR 、VARCHAR或TEXT类型及其系列类型的字段上,查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度,例如、表student的字段information是text类型,该字段包含了很多文字信息,在字段information上建立全文索引后,可以提高查询字段information的速度。如果组成 索引的所有列都被删除,则整个索引将被删除。

2024-07-05 16:44:14 958

原创 MYSQL 四、mysql进阶 5(InnoDB数据存储结构)

页a、页b、页c...页n这些可以不在物理结构上相连,只要通过双向链表相关联即可,每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里面的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可,快速找到指定的记录。

2024-06-27 18:41:33 848

原创 MYSQL 四、mysql进阶 4(索引的数据结构)

1.为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。Mysql中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合则需要全表扫描,即需要一条一条的查找记录,直到找到与条件符合的记录。 ​​​​ 如上图所示,数据库没有索引的情况下,数据 分布在硬盘的不同位置上面,读取数据时,摆臂需要前后摆动查找数据,这样操作非

2024-06-19 18:18:40 1004

原创 MYSQL 四、mysql进阶 3(存储引擎)

4.1 InnoDB引擎:具备外键支持功能的事务存储引擎MySQL从3.23.34a开始就包含InnoDB存储引擎。大于等于5.5之后,默认采用InnoDB引擎。InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期事务。可以确保事务的完整提交(Commit)和回滚(Rollback)。事务是最重要的区别除了增加和查询外,还需要更新、删除操作,那么,应优先选择InnoDB存储引擎。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB。

2024-06-19 14:51:19 629

原创 MYSQL 四、mysql进阶 2(mysql逻辑架构以及查询流程)

1. 逻辑架构剖析 1.1 服务器处理客户端请求 mysql是典型的c/s架构,即 client/server 架构,不论是客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(sql语句),服务器进程处理后再向客户端进程发送一段文本(处理结果) 下面具体展开看一下: 系统(客户端)访问 MySQL 服务器前,做的第一件事就是建立 TCP 连接。 经过三次握手建立连接

2024-06-18 10:29:16 870

原创 MYSQL 三、mysql基础知识 7(MySQL8其它新特性)

MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上 做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。1.1 MySQL8.0 新增特性1. 更简便的NoSQL支持NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展,传统的关系型数据库已经越来越不能满足需求。从5.6版本开始,MySQL。

2024-06-14 11:34:55 778

原创 MYSQL 三、mysql基础知识 6(触发器)

在实际开发中,我们经常会遇到这样的情况:有 2个或者多个相互关联的表,如商品信息和库存信息分别存放在 2 个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时在库存表中添加一条库存记录。这样一来,我们就必须把这两个关联的操作步骤写到程序里面,而且要用事务包裹起来,确保这两个操 作成为一个原子操作,要么全部执行,要么全部不执行。要是遇到特殊情况,可能还需要对数据进行手 动维护,这样就很容易忘记其中的一步,导致数据缺失。这个时候,咱们可以使用触发器。

2024-06-13 18:42:29 952

原创 MYSQL 三、mysql基础知识 5(变量、流程控制与游标)

定义条件是事先定义程序执行过程中可能遇到的问题,处理程序定义了在遇到问题时应当采取的处理方 式,并且保证存储过程或函数在遇到警告或错误时能继续执行。这样可以增强存储程序处理问题的能 力,避免程序异常停止运行。说明:定义条件和处理程序在存储过程、存储函数中都是支持的。2.1 案例分析创建一个名称为的存储过程。SET @x = 2;SET @x = 3;# 调用存储过程:+------+| @x |

2024-06-13 15:58:48 792

原创 MYSQL 三、mysql基础知识 4(存储过程与函数)

含义:存储过程的英文是。它的思想很简单,就是一组经过预先编译的SQL 语句的封装。执行过程:存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服务器端发出调用 存储过程的命令,服务器端就可以把预先存储好的这一系列 SQL语句全部执行。好处1、简化操作,提高了sql语句的重用性,减少了开发程序员的压力2、减少操作过程中的失误,提高效率3、减少网络传输量(客户端不需要把所有的SQL 语句通过网络发给服务器)4、减少了SQL。

2024-06-12 17:31:01 1003

原创 MYSQL 三、mysql基础知识 3(视图)

视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。刚才讲的只是视图的一个使用场景,实际上视图还有很多作用。最后,我们总结视图的优点。2、视图的理解:视图是一种虚拟表,本身是不具有数据的,占用很少的内存空间,它是SQL中的一个重要概念。

2024-06-12 11:32:48 583

原创 MYSQL 三、mysql基础知识 2(约束)

1.1为什么需要约束数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(它是防止数据库中 存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:实体完整性(:例如,同一个表中,不能存在两条完全相同无法区分的记录域完整性(:例如:年龄范围0-120,性别范围男女引用完整性(:例如:员工所在部门,在部门表中要能找到这个部门。

2024-05-24 19:04:43 305

原创 MYSQL 三、mysql基础知识 1(数据类型)

浮点数和定点数类型的特点是可以处理小数,你可以把整数看成小数的一个特例。因此,浮点数和定点数的使用场景,比整数大多了。MySQL支持的浮点数类型,分别是FLOATFLOAT 表示单精度浮点数;DOUBLE 表示双精度浮点数;REAL默认就是DOUBLE。如果你把SQL模式设定为启用,那 么,MySQL就认为REAL是FLOAT。如果要启用,可以通过以下SQL语句实现:SET问题1FLOAT和DOUBLE这两种数据类型的区别是啥呢?SET。

2024-05-23 14:53:51 619

原创 MYSQL 二、SQL语句总结 2 (创建和管理表 以及 数据增删改)

保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据 类型在一个表里是整数,那在另一个表里可就别变成字符型了。软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名。必须保证你的字段没有和保留字、数据库系统或常用方法冲突。修改表指的是修改数据库中已经存在的数据表的结构。数据库名、表名、字段名等对象名中间不要包含空格。数据库名、表名不得超过。个字符,变量名限制为。

2024-05-17 18:33:34 337

原创 MYSQL 一、mysql详解

1、DML(Data Manipulation Language):数据操纵语句,用于添加、删除、修改、查询数据库记录,并检查数据完整性。2、DDL(Data Definition Language):数据定义语句,用于库和表的创建、修改、删除。3、虽然简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。3、表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。5、表中的数据是按行存储的,每一行类似于java中的“对象”。

2024-04-18 16:37:28 363

原创 MYSQL 二、SQL语句总结 1 (select相关)

F5 刷新。CTRL+F 查找字段。SHIFT+CTRL+R 运行当前语句。CTRL+TAB 或 SHIFT+CTRL+TAB 下一个窗口或选项卡。创建表、删除表、在表中增加字段、在表中减少字段,修改表字段名等。

2024-04-16 17:42:57 666

原创 自定义注解实现 一:自定义校验注解

1、@Constraint(validatedBy = MyConstraint.MyConstraintValidator.class) 代表处理逻辑是MyConstraint.MyConstraintValidator.class。对象属性使用了javax.validation或者org.springframework.validation包下的注解进行校验(如@NotNull、@Size等),而传入的值不符合这些注解所定义的约束条件。2、处理类,需要实现ConstraintValidator接口。

2024-04-11 13:42:08 277

原创 Java 实现自定义注解

在开发中一般加上注解之后会自动执行一些逻辑,大部分实现的原理是使用切面来实现注解的逻辑的。//注解用于方法//运行时使用@Component@Aspect@Slf4j/** 这是一个切入点* *///获取方法名称//日志输出log.info(methodName+"进来了");try {

2024-04-08 21:47:07 2167

原创 springBoot整合Redis(四、整合redis 实现分布式锁)

在单机环境,我们使用最多的是juc包里的单机锁,但是随着微服务分布式项目的普及,juc里的锁是不能控制分布锁环境的线程安全的,因为单机锁只能控制同个进程里的线程安全,不能控制多节点的线程安全,所以就需要使用分布式锁分布式锁的原理就不说太多了,主要讲讲基于redis的分布式锁的用法。

2024-03-16 18:33:12 663

原创 springBoot整合Redis(三、整合Spring Cache)

Spring Cache本身是一个缓存体系的抽象实现,并没有具体的缓存能力,要使用Spring Cache还需要具体的缓存实现来完成。Spring Boot 集成了多种cache的实现,如果你没有在配置类中声明CacheManager或者CacheResolvoer,那么SpringBoot会按顺序在下面的实现类中寻找:每次调用需要缓存功能的方法时,Spring会检查检查指定参数的指定的目标方法是否已经被调用过;如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户。

2024-03-06 23:18:13 1097

原创 springBoot整合Redis(二、RedisTemplate操作Redis)

13212。

2024-02-26 23:10:58 699

原创 springBoot整合Redis(一、Jedis操作Redis)

在springboot环境下连接redis的方法有很多,首先最简单的就是直接通过jedis类来连接,jedis类就相当于是redis的客户端表示。但是因为现在比较常用的是:StringRedisTemplate和RedisTemplate,所以jedis只做简单的介绍。

2024-02-25 22:33:37 2179 1

原创 java日志框架总结(七、使用过滤器自动打印接口入参、出参)

回顾一下Filter的工作原理。Filter可以在Servlet执行之前或之后调用。当请求被调度给一个Servlet时,可能会将其转发给另一个Servlet。另一个Servlet也有可能使用相同的Filter。在这种情况下,同一个Filter会被调用多次。但是,有时需要确保每个请求只调用一次特定的 Filter。一个常见的用例是在使用时。当请求通过过滤器链(Filter Chain)时,对请求的身份证认证应该只执行一次。在这种情况下,可以继承。Spring 保证只对指定请求执行一次。

2024-02-23 04:04:09 1433

原创 java日志框架总结(六、logback日志框架 扩展)

一、logback-spring.xml大部分标签都比较类似,简单说一下:共有一个父标签、两种属性、三个节点: (与logback.xml类似)一个父标签:configuration两种属性:contextName和property三个节点:appender、root、logger。

2024-02-18 00:38:24 1275

原创 java日志框架总结(五、logback日志框架)

Logback是由log4j创始人设计的又一个开源日志组件。Logback当前分成三个模块:1)logback-core是其它两个模块的基础模块。2)logback-classic是log4j的一个改良版本。此外logback-classic完整实现SLF4J API。使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。3)logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

2024-02-06 17:23:47 1323

原创 java日志框架总结(四 、JCL日志门面技术)

日志框架出现的历史顺序:Log4j → JUL → JCL → slf4j →→ log4j2在前面博文中,我们分别讲述了常用的2个日志框架:JUL(Java Util Logging)、Log4J。那么如何选择使用哪一个呢?根据项目需求而定,在项目设计之初,功能比较单一简单,那么我们可以使用JUL日志框架,使用起来非常灵活,也不需要引入第三方依赖,随着我们项目升级,迭代维护,功能会越来越完善,简单的日志实现框架就不能满足我们的业务需求,那么就要进行日志升级!

2024-02-05 10:39:53 1281

原创 java日志框架总结(三 、Log4j日志框架)

Log4j( Logger For Java ) , Java 日志的记录包。官方网站。Log4j 是Apache的一个开源项目, 为Java提供了日志记录功能。能够让程序员非常方便的记录日志, 并且提供了多种适配方式,能满足各种需求。使用Log4j 只需要导入一个jar包,jar 下载地址。

2024-01-28 23:03:32 1240

原创 java日志框架总结(一、简单介绍各个框架关系)

java常用的日志框架、可以分为两组:其中第一组是比较早期的日志实现框架,JCL并不是具体的日志实现框架,JCL其实是定义了一套日志接口,具体实现则由 Log4j 或 JUL 来完成。也就是说JCL负责命题,然后Log4j、JUL负责实现。第二组是目前比较流行的框架,其中SLF4J也不是具体的实现,而是一套日志门面像JCL一样,专门负责命题,然后Log4j2、Logback负责实现,具体的方法。后来SLf4J也兼容了JUL、Log4j。日志门面。

2024-01-19 16:32:52 417

原创 java日志框架总结(二 、JUL日志框架)

java常用的日志框架、可以分为两组:其中第一组是比较早期的日志实现框架,JCL并不是具体的日志实现框架,JCL其实是定义了一套日志接口,具体实现则由 Log4j 或 JUL 来完成。也就是说JCL负责命题,然后Log4j、JUL负责实现。第二组是目前比较流行的框架,其中SLF4J也不是具体的实现,而是一套日志门面像JCL一样,专门负责命题,然后Log4j2、Logback负责实现,具体的方法。后来SLf4J也兼容了JUL、Log4j。日志门面。

2024-01-16 23:04:16 495

原创 BigDecimal使用记录

float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。java的float只能用来进行科学计算或工程计算,在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算。

2024-01-09 18:32:03 402

原创 springboot整合webservice使用总结

Web Service也叫XML Web Service, WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

2024-01-03 22:50:37 2447 1

原创 java中XML格式转换

之前很少用xml格式,但是有些老系统还是需要使用xml格式进行对接,所以干脆总结一下,方便以后使用。关于xml:即,xml是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者。xml是当前处理结构化文档信息中相当给力的技术,xml有助于在服务器之间穿梭结构化数据,这使得开发人员更加得心应手的控制数据的存储和传输。

2023-12-27 18:31:40 1555

空空如也

空空如也

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

TA关注的人

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