自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (1)
  • 收藏
  • 关注

原创 PageHelper不再那么香了

PageHelper什么是PageHelperpageHelper是一款分页插件,它能很好的集成在spring boot中在它是一个基于mybatis的一款插件。它是的底层实现技术则是使用动态代理实现的。所以我们在使用它时,我们需要使用mybatis作为持久层框架。PageHelper基本配置如果我们需要使用pageHelper的话,我们需要在spring boot项目中引入pageHelper的依赖。以下是PageHelper的GitHub地址https://github.com/page

2021-10-18 12:23:20 1150 1

原创 数据结构之B-树和B+树

特意说明,本文只简述B树和B+树的基本概念,并不涉及删除,插入等操作B树B树中所有结点的孩子结点个数的最大值称为B树的阶,通常用m表示,从查找效率考虑,要求m>=3。一颗m阶的B树应该满足以下条件:每个结点最多有m个分支;而最少分支树要看是否为根结点,如果是根结点且不是叶子结点,则至少有两个分支,非根非叶结点至少有(m/2)(向上取整,后面的m/2都是这个意思)个分支。有n(k<=n<=m)个分支的结点有n-1个关键字,它们按递增顺序排序。k=2(根结点)或m/2每个结点的结构

2020-05-18 16:49:25 1655

转载 MySQL之索引(二)

索引使用MySQL建立索引类型单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。索引是在存储引擎中实现的,而不是在服务器层中实现的。所以,每种存储引擎的索引都不一定完全相同,并不是所有的存储引擎都支持所有的索引类型。普通索引这是最基本的索引,它没有任何限制。普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column = …)或排序条件(ORDER

2020-05-18 15:43:40 251

转载 MySQL之索引(一)

索引的优缺点优点索引大大减小了服务器需要扫描的数据量 索引可以帮助服务器避免排序和临时表 索引可以将随机IO变成顺序IO索引对于InnoDB(对索引支持行级锁)非常重要,因为它可以让查询锁更少的元组。在MySQL5.1和更新的版本中,InnoDB可以在服务器端过滤掉行后就释放锁,但在早期的MySQL版本中,InnoDB直到事务提交时才会解锁。对不需要的元组的加锁,会增加锁的开销,降低并发性。 InnoDB仅对需要访问的元组加锁,而索引能够减少InnoDB访问的元组数。但是只有在存储引擎层过滤掉那些不需要

2020-05-18 15:17:05 245

原创 MySQL之存储引擎

InnoDB是MySQL默认的事务型存储引擎,只有在需要它不支持的特性时,才考虑使用其它存储引擎。实现了四个标准的隔离级别,默认级别是可重复读。在可重复读隔离级别下,通过多版本并发控制+间隙锁防止幻影读。主索引是聚簇索引,在索引中保存了数据,从而避免直接读取磁盘,因此对查询性能有很大的提升。内部做了很多优化,包括从磁盘读取数据时采用的可预测性读,能够加快读操作并且自动创建自适应哈希索引,能够加速插入操作。支持真正的在线热备份。其它存储引擎不支持在线热备份,要获取一致性视图需要停止对所有表的写入,而

2020-05-18 08:38:21 128

原创 java之什么是面向对象

三大特性封装利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据 类型的内部,尽可能地隐藏内部的细节,只保留一些对外的接口使其与外部发生联系。用户无需关心对象内部的细 节,但可以通过对象对外提供的接口来访问该对象。优点:减少耦合:可以独立地开发、测试、优化、使用、理解和修改 减轻维护的负担:可以更容易被程序员理解,并且在调试的时候可以不影响其他模块 有效地调节性能:可以通过剖析来确定哪些模块影响了系统的性能 提高软件的可重用性 降低了构建大型系统的

2020-05-17 17:12:00 170

原创 MySQL之事务隔离级别和锁之间的关系

悲观锁和乐观锁悲观锁正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。在悲观锁的情况下,为了保证事务的隔离性,就需要一致性锁定读。读取数据时给加锁,其它事务无法修改这些数据。修改删除数据时也要加锁,其它事务无法读取这些数据。乐观

2020-05-17 16:36:18 528

原创 HashSet之存入重复数据问题

问题将一个引用对象存入到HashSet中,在修改其引用对象属性后,是否可以删除被修改后的对象,是否再次可以存入修改前的引用对象,是否可以存入修改后的数据。(引用对象,重写了euqals、hashcode方法)代码如下:Person类:public class Person { int age; String name; public Person(int age, String name) { this.age = age; this.n

2020-05-17 15:34:36 3691

原创 MySQL之隔离级别和多版本并发控制

隔离级别未提交读(READ UNCOMMITTED)事务中的修改,即使没有提及,对其他事务也是可见的。提交读(READ COMMITTED)一个事务只能读取已经提及的事务所做的修改。可重复读(REPEATABLE READ)保证在同一个事务中多次读取同样数据的结果是一样的。可串行化(SERIAKIZABLE)强制事务串行执行隔离级别脏读不可重复读幻影读未提交读会会会提交读不会会会可重复读不会不会会可串行化不会不会不会

2020-05-17 10:41:45 206

原创 MySQL之封锁

封锁粒度MySQL中提供了两种封锁粒度:行级锁以及表级锁应该尽量只锁定需要修改的那部分数据,而不是所有的资源。锁定的数据量越少,发生锁争用的可能性越小,系统并发程度越高,但是加锁需要消耗资源,锁的各种操作(包括获取锁、释放锁、以及检查锁的状态)都会增加系统开销。因此封锁粒度越小,系统开销越大。所以在选择封锁粒度时,需要在锁开销和并发程度之间做一个权衡。封锁类型读写锁排他锁,简称X锁,又称写锁共享锁,简称S锁,又称读锁有以下两个规定一个事务对数据对象A加了X锁,就可以对A进行读取和更新

2020-05-17 09:38:12 351

原创 MySQL之并发一致性问题

在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性的问题丢失修改T1和T2两个事务都对一个数据进行修改,T1先修改,T2后修改,T2的修改覆盖了T1的修改读脏数据T1修改一个数据,T2随后读取这个数据。如果T1撤销了这次修改,那么T2读取的数据时脏数据不可重复读T2读取一个数据,T1对该数据做了修改。如果T2再次读取这个数据,此时读取结果和第一次读取的结果不同。幻影读T1读取某个范围内的数据,T2在这个范围内插入新的数据,T1再次读取这个范围内的数据,此时读取的结果和第一次读取的

2020-05-17 08:58:59 579

原创 MySQL之事务

概念事务指的是满足ACID特性的一组操作,可以通过Commit提交一个事务,也可以使用Rollback进行回滚。ACID原子性(Atomicity)事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以通过回滚日志来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改即可一致性(Consistency)数据库在事务执行前后保持一致性状态,在一致性状态下,所有事务对一个数据的读取结果是相同的。隔离性(Isolation)一个事务所做的

2020-05-17 08:45:24 124

原创 github初体验之上传项目

创建一个自己的github账户创建一个仓库创建完成后会有一个ssh链接,在接下来的操作中会使用到下载最新的Git,下载地址为https://git-scm.com/downloads,安装完成后打开Git Bash,开始上传项目进入想要上传的项目目录Administrator@SC-201906171616 MINGW64 ~$ cd D:Administrator@SC-201906171616 MINGW64 /d$ cd IdeaProject/Administrator.

2020-05-16 20:34:04 236

空空如也

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

TA关注的人

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