自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL双写 - Double Write

如果说change buffer给InnoDB存储引擎带来了性能上的提升,那么Double Write带给InnoDB存储引擎的是数据页的可靠性。本文通过图文的方式,着重讲解Double Write可靠性原理。同时,可以通过点击change buffer链接,查看为什么change buffer会给InnoDB存储引擎带来性能上的提升。

2020-07-31 23:37:26 5023

原创 MySQL检查点机制 - CheckPoint

对于 InnoDB 存储引擎而言,是通过 LSN(Log Sequence Number)来标记版本的。Checkpoint 发生的时间、条件及脏页的选择等都非常复杂。而 Checkpoint 所做的事情无外乎是将缓冲池中的脏页刷回到磁盘,不同之处在于每次刷新多少页到磁盘,每次从哪里取脏页,以及什么时间触发Checkpoint。

2020-07-31 00:59:56 1678

转载 MySQL存储引擎之InnoDB - 写缓冲(change buffer)

1、前序1在《MySQL存储引擎之InnoDB - 缓冲池(buffer pool)》中提到:(1)MySQL数据存储包含内存与磁盘两个部分;(2)内存缓冲池(buffer pool)以页为单位,缓存最热的数据页(data page)与索引页(index page);(3)InnoDB以变种LRU算法管理缓冲池,并能够解决“预读失效”与“缓冲池污染”的问题;毫无疑问,对于读请求,缓冲池能够减少磁盘IO,提升性能。问题来了,那写请求呢?2、场景1:访问页命中缓冲池假如要修改页号为4的索引

2020-07-29 00:37:02 779 2

转载 MySQL存储引擎之InnoDB - 缓冲池(buffer pool)

1、前言操作系统,会有缓冲池(buffer pool)机制,避免每次访问磁盘,以加速数据的访问。应用系统分层架构,为了加速数据访问,会把最常访问的数据,放在缓存(cache)里,避免每次都去访问数据库。MySQL作为一个存储系统,同样具有缓冲池(buffer pool)机制,以避免每次查询数据都进行磁盘IO。2、初识缓冲池InnoDB的缓冲池的缓存内容与作用缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。(速度快,那为啥不把所有数据

2020-07-28 01:14:51 786

转载 MySQL的锁机制 - 间隙锁

间隙锁是封锁索引记录中的间隔,或是第一条索引记录之前的范围,又或是最后一条索引记录之后的范围。1、间隙锁打开设置首先查看 innodb_locks_unsafe_for_binlog 是否禁用SHOW variables LIKE 'innodb_locks_unsafe_for_binlog';-- 结果:+--------------------------------+-------+| Variable_name | Value |+-------.

2020-07-26 02:00:33 1836 2

原创 Java七大设计原则1 -- 开闭原则

1、开闭原则的定义软件实体(类,模块,函数等等)应当对扩展开放,对修改关闭。      — 勃兰特·梅耶定义中的软件实体可以包括几个部分:项目中划分出的模块、类、接口与方法。开闭原则主张:当一个业务当需求发生变动时,我们期望代码可以通过扩展模块的方式去满足新的需求,而不是去修改原来的代码。这是对软件实体的灵活性、稳定性的一种考验。但是现实开发中,我们很难,或者说一次性很难完成这一项工作,需求的变动往往也“不按逻辑出牌”,所以开闭原则的目的并不是定义某种设计原则,而

2020-07-21 01:32:21 317

原创 MySQL学习笔记3 - 锁的分类

1、锁介绍-- 范例表create table mylock( id int not null primary key auto_increment, name varchar(20));insert into mylock(id, name) values (1, 'a');insert into mylock(id, name) values (2, 'b');insert into mylock(id, name) values (3, 'c');insert into myloc

2020-07-19 23:32:45 318

原创 MySQL学习笔记 - 浅谈索引

1、索引简介1.1、索引的利弊利检索:可以提高数据检索的效率,降低数据库的IO成本,类似于书的目录。排序:通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。索引下推:server层不能处理的索引,可以通过索引下推(ICP)在存储引擎层处理。索引覆盖:在满足覆盖索引条件时,可以避免回表查询。…弊索引会占据磁盘空间。索引虽然会提高查询效率,但是会降低更新表的效率。比如每次对表进行增删改操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文件。1.2、索引的分类

2020-07-19 02:27:55 298

原创 MySQL学习笔记1 - MySQL架构

MySQL架构可以分为物理架构与逻辑架构1、逻辑架构逻辑架构图式如下1.1、连接器(Connectors)MySQL连接器为客户端程序提供与MySQL服务器的连接。 连接器使您能够连接和执行来自另一种语言或环境的MySQL语句,包括ODBC,Java(JDBC),Perl,Python,PHP,Ruby等MySQL实例。以JAVA为例,mysql-connector-java是MySQL的JDBC驱动包,通过该jar包实现JDBC连接MySQL。Oracle收购MySQL后,为MySQL.

2020-07-18 02:38:52 197

原创 用Java简单实现部门多叉树

树是一个非常关键的数据结构,在我们日常的开发中,它能帮助我们解决很多问题。例如:一个公司有多个部门,每个部门的结构也都不同,有些部门底下直接对接对应的岗位,而有些部门比较大,其底下可能存在多个小部门。对于这种情况,数据结构【树】完美的贴合了该情景...

2020-07-12 02:09:02 898

原创 Git克隆远程仓库与本地文件上传至新建仓库

本文旨在帮助读者快捷掌握从远程git仓库拉取代码,或者希望将本地文件上传到自己新建的GIt仓库中的方法。基本没有赘述,直接操作就可以得到想要的结果。

2020-07-06 01:16:33 239

空空如也

空空如也

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

TA关注的人

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