自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

悟空Edison的博客

人生在世,逆水行舟

  • 博客(11)
  • 收藏
  • 关注

原创 直击HashMap源码

HashMap源码分析前言我们在开发当中常常会用到HashMap这个对象,去存储key-value的数据,但是大多数时候我们都没去细细分析HashMap的源码。今天我就来跟着HashMap源码来分析HashMap是如何实现存储,扩容,以及性能优化的。为了方便查看可以快速检索文章大纲HashMap数据结构HashMap是通过 数组+单向链表+红黑树 3种数据结构来存储key和value的这里先提前说一下 hashmap中key的寻址方法是数组地址= ( hashcode ^ (hashcod

2020-08-26 14:25:56 140

原创 CDN防盗链与有效使用CDN缓存

CDN防盗链应用场景在我们搭建自己的阿里云CDN时,加快我们站点的静态文件响应速度。但是与此同时,我们站点里的某些静态资源可能会被其他用户所盗取,然后使用我们的流量让他们的站点变得更流畅。案例:假设我们的网站为A 里面有一个静态的CDN链接此时用户B看到我们的网站里的CDN链接并盗用了我这个链接,发布在他们自己的网站上。此时用户看到用户B的图片的流程图用户站点B可以看见用户并不知道这个CDN链接是属于我的,此时站点B就是在盗用我的CDN链接,并且没有给我带来流量。使用 阿里云CDN是存在外

2020-07-29 14:06:14 1129

原创 听说你不想只搬砖?——Mysql中查询缓存优化

Mysql中查询缓存优化在实际的业务环境中,我们可能会存在重复查询相同sql的数据,其实这样每次都用Mysql走文件或索引查询数据的效率是非常的慢的,所以我们需要引入Mysql中的查询缓存。当数据被修改,之前的缓存会失效,修改比较频繁的表不适合做查询缓存。当然使用 mysql 缓存也不是没有坏处,mysql 多了个管理缓存的任务,需要写入缓存,然后如果判断里面的缓存已经过期,又要从里面删除缓存。博主在学习的时候发现Mysql8已经废弃了这个功能,大家学习的时候可以当作了解。因为现在的缓存工具很多,比如

2020-07-16 14:24:05 180

原创 听说你不想只搬砖?——Mysql中索引相关和SQL优化

索引相关索引是数据库优化最常用的手段之一,通过索引通常可以帮助用户解决大多数的MySQL性能优化问题。以下的所有操作都只是抛砖引玉的作用,很多场景都是讲的大多数场景不是绝对的场景,具体场景还是需要具体分析,因为Mysql查询机制很优秀会选择“最优执行计划”也和索引的数据结构有关,请读者按着文章实际操作一次,才能更加贴切的了解到索引相关操作的奥秘,光学不写如竹篮打水。避免索引失效以下操作都是模拟操作,请自己手动操作一次加深印象全值匹配对索引中所有列都指定具体值。该情况下,索引生效,执行效率高。

2020-07-16 14:23:27 184

原创 听说你不想只搬砖?——Mysql中sql优化步骤

优化SQL步骤听说你不想在工作中只做一些简单的CRUD的工作了。那么作为极客的你,一定得知道这些优化SQL的步骤,才能在大数据级表查询中不用注释掉Thread.sleep(10000);就能让你的程序优化杠杠的。查看SQL执行频率查看当前连接的信息# 查看SQL执行频率 7个_占位 查询的是当前连接的信息 此处代表命令执行操作次数show status like 'Com_______';# 以下是查询出的信息+---------------+-------+| Variable_name

2020-07-16 14:22:40 219

原创 Mysql中MVCC原理

Mysql中MVCC原理什么是MVCC?英文全称为Multi-Version Concurrency Control,翻译为中文即 多版本并发控制。他无非就是乐观锁的一种实现方式。在Java编程中,如果把乐观锁看成一个接口,MVCC便是这个接口的一个实现类而已。特点1.MVCC其实广泛应用于数据库技术,像Oracle,PostgreSQL等也引入了该技术,即适用范围广2.MVCC并没有简单的使用数据库的行锁,而是使用了行级锁,row_level_lock,而非InnoDB中的innodb_row

2020-07-16 14:21:26 148

原创 Mysql共享锁、排他锁

Mysql共享锁、排他锁名词及含义表级锁(锁定整个表)页级锁(锁定一页)行级锁(锁定一行)共享锁(S锁,MyISAM 叫做读锁)排他锁(X锁,MyISAM 叫做写锁)间隙锁(NEXT-KEY锁)悲观锁(抽象性,不真实存在这个锁)乐观锁(抽象性,不真实存在这个锁)InnoDB与MyISAM我之前专程写了Mysql中MyISAM和InnoDB区别和Mysql存储引擎这里主要写一些影响锁相关的内容Mysql 在5.5之前默认使用 MyISAM 存储引擎,之后使用 InnoDB 。查

2020-07-16 14:20:18 513

原创 Mysql中MyISAM和InnoDB区别

MyISAMMyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM。InnoDBInnoDB,是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一。Inno

2020-07-16 14:19:05 720

原创 Mysql各种索引分析

索引概述MySQL官方堆索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。索引优势劣势优势类似数据的目录索引,提高数据检索的效率,降低数据库的IO成本。通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗劣势实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列

2020-07-16 14:18:16 105

原创 Mysql中各种存储引擎解析

存储引擎概述和大多数的数据库不同,MySQL中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎。存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式。存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型。Oracle,SqlServer等数据库只有一种存储引擎。MySQL提供了插件式的存储引擎架构。所以MySQL存在多种存储引擎,可以根据需要使用相应的引擎,或者编写存储引擎。MySQL5.0支持的存储引擎包含:InnoDBMyISAMBDBMEMORY

2020-07-16 14:17:11 106

原创 Transactional事务隔离级别和传播性

Transactional注解隔离级别定义一个事务受其他并发事务影响程度。事务并发引发的问题。脏读:一个事务读取到另一个事务修改但还未提交的数据不可重复读:一个事务读取数据之后,该数据被其他事务修改,此时第一个事务读取到的事务就是错误的(强调修改)幻读:一个事务读取了某些数据,没提交再读取时数据多了或者少了,类似幻觉(强调增删)丢失修改:两个事务都读取了数据,其中一个事务修改之后,另一个事务也做了修改,前者的修改丢失。、我们这里先看看@Transaction注解//可以放在 类上 或者

2020-07-16 14:15:44 2070

空空如也

空空如也

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

TA关注的人

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