自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 高性能Mysql-Mysql高级特性

1、分区表对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理子表组成。实现分区的代码实际上是对一组句柄对象的封装。对分区表的请求, 都会通过句柄对象转化成对存储引擎的接口调用。 MySQL实现分区表的方式一一对底层表的封装一一意味着索引也是按照分区的子表定义的, 而没有全局索引。 这和Oracle不同,在Oracle中可以更加灵活地定义索引和表是否进行分区。mysql在创建表时用PA...

2018-11-01 17:28:06 436

原创 java设计模式-外观模式

外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。外观模式通过引入一个新的外观类(Facade)来实现该功能,外观类充当了软件系统中的“服务员”,它为多个业务类的调用提供了一个统一的入口,简化了类与类之间的交互。外观模式中,一个子系统的外部与其内部的通信通过一个...

2018-10-30 18:47:45 231

原创 高性能Mysql-查询性能优化

1、为什么查询会变慢在尝试编写快速的查询之前,首先我们需要明白,真正重要的是响应时间。如果把查询看做是一个任务,那么他就是由多个子任务组成的,优化查询也就是需要优化这些子任务。通常来说,查询的生命周期大致可以按照顺序来看:从客户端到服务器,然后再服务器上进行解析,生成执行计划,执行,并返回结果给客户端。在完成这些任务的时候,查询需要在不同的地方花费时间,包括网络,CPU计算,生成统计信息和执行...

2018-10-30 16:34:38 310

原创 高性能Mysql-创建高性能索引

索引(在MySQL中也叫做 “键(key)”)是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键。 尤其是当表中的数据量越来越大时, 索引对性能的影响愈发重要。 在数据量较小且负载较低时, 不恰当的索引对性能的影响可能还不明显, 但当数据量逐渐增大时, 性能则会急剧下降。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高几个数量级, “最优” 的索引有时比一个...

2018-10-29 18:16:27 363

原创 高性能Mysql-服务器性能剖析

1、性能优化简介什么是性能?性能是完成某件任务所需要的时间度量,简而言之,性能即响应时间。这是一个非常重要的原则。在实际工作中,如果我们把性能优化看作是提升每秒的查询量,那么这其实只是吞吐量的优化,吞吐量的提升可以看做性能优化的副产品。所以,如果我们将降低响应时间看做是性能优化,那我们就需要理解为什么服务器执行查询会需要这么多时间,从而引出我们性能优化的第二个原则:无法测量就无法有效的优化。所...

2018-10-22 15:31:38 267

原创 java设计模式-装饰模式

装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具有防潮的功能,而且用户可以根据需要给它增加不同类型的相框,甚至可以在一个小相框的外面再套一个大相框。装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰...

2018-10-08 18:23:43 145

原创 高性能Mysql-Mysql基准测试

基准测试(benchmark)是我们需要掌握的一项基本技能。简单的说,基准测试是针对系统设计的一种压力测试。通常的目标是为了掌握系统的行为。1、为什么需要基准测试基准测试是唯一方便有效的、 可以学习系统在给定的工作负载下会发生什么的方法。基准测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些是重要的变化,或者观察系统如何处理不同的数据。基准测试可以完成以下工作:•    重现...

2018-10-08 16:37:49 182

原创 高性能Mysql-Mysql架构与历史

和其他数据库系统相比, MySQL有点与众不同, 它的架构可以在多种不同场景中应用并发挥好的作用, 但同时也会带来一点选择上的困难。MySQL井不完美, 却足够灵活,能够适应高要求的环境, 例如Web类应用。1、MySQL逻辑架构为了更好的学习mysql,首先我们需要先了解一下mysql的逻辑架构图,如下: 最上层的服务并不是MySQL所独有的, 大多数基于网络的客户端/服务器的工...

2018-10-08 15:29:20 117

原创 java设计模式-组合模式

对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。由于容器对象和叶子对象在功能上的区别,在使用这些对象的代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下我们希望一致地处理它们,因为对于这些对象的区别对待将会使得程序非常复杂。...

2018-09-19 16:22:40 130

原创 java设计模式-桥接模式

桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接两个独立继承结构的桥,故名桥接模式。桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联取代了传...

2018-09-18 14:57:16 105

原创 java设计模式-适配器模式

与电源适配器相似,在适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用。也就是说:当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法,而这个过程对客户类是透明的,客户类并不直接访问适配者类。因此,适配器让那些由于接口不兼容而不能交互的类可以一起工作。...

2018-09-18 13:46:23 108

原创 java设计模式-建造者模式

建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。它关注如何一步一步创建一个的复杂对象,不同的具体建造者定义了不同的创建过程,且具体建造者相互独立,增加新的建造者非常方便,无须修改已有代码,系统具有较好的扩展性。建造者模式包含角色: ① Builder(抽象建造者...

2018-08-30 11:40:21 325

原创 java设计模式-原型模式

在使用原型模式时,我们需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。原型模式的定义:使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式的工作原理:将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝自己来实现创建过程。在原型模式结构图中包含如下几个角色:① Proto...

2018-08-29 16:40:43 137

原创 java设计模式-单例模式

实际开发中,为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,当这个唯一实例创建成功之后,我们无法再创建一个同类型的其他对象,所有的操作都只能基于这个唯一实例。为了确保对象的唯一性,我们可以通过单例模式来实现,这就是单例模式的动机所在。单例模式定义如下: 单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类...

2018-08-29 11:41:47 83

原创 java设计模式-抽象工厂模式

工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产,这就是我们将要学习的抽象工厂模式的基本思想。为了更好的理解抽象工厂模式,我们引入两个概念:(1) 产品等级结构:产品等级结构即产品的继承...

2018-08-28 16:19:27 173

原创 java设计模式-工厂方法模式

简单工厂模式虽然简单,但存在一个很严重的问题。当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则”,如何实现增加新产品而不影响已有代码?工厂方法模式应运而生。在工厂方法模式中,我们不再提供一个统一的工厂类来创建所有的产品对象,而是针对不同的产品提供不同的工厂,系统提供一个与产品等级结构对应的工厂等级结构。工厂方法模式定义...

2018-08-28 15:05:37 104

原创 java设计模式-简单工厂模式

工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式。今天我们将学习简单工厂模式。如题,简单工厂模式将是工厂模式中最简单的。简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因...

2018-08-27 15:54:19 135

原创 深入理解java虚拟机-day5

通过这几天的看书学习才真正发现,坚持看书真的是一件非常非常难的事。所谓"天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能"(哈哈,应情应景),虽然我们为了取得进步没有受过这么多苦难,但是坚持弄懂枯燥无聊的书本知识也是对心性的一种历练,也许今后在回头看我们一路成长的旅程,我们会更加佩服那个坚持做一件事的自己。鼓励完毕,今天我们将学习虚拟机字节码...

2018-08-21 15:49:41 103

原创 深入理解java虚拟机-day4

这几天又犯懒了,所以导致这几天没有进行博客的更新。我还记得以前以为公司的领导和我言真意切的说过一句话:人都有惰性,所以成功最基本的要素就是学会坚持。所以,刚刚忙完一个需求开发的我,便开始就坚持对java虚拟机的学习了,毕竟没有什么捷径可以让你一步登顶。好了,废话不多说,今天我们主要好好研习一下java的类加载机制。一、何为类加载。虚拟机把描述类的数据从class文件加载到内存,并对数据进行...

2018-08-20 18:24:53 110

原创 深入理解java虚拟机-day3

工欲善其事,必先利其器。想要深入的了解虚拟机,那我们就必须先学会使用工具对其进行性能监控和故障处理。在充分了解了我们的"利器"之后,那我们就能开始对虚拟机进行性能调优了。首先,我们先来了解一下有哪些"利器"可以为我所用。一、虚拟机性能监控与故障处理工具。1、jps(jdk自带):虚拟机进程状况工具。功能说明:jps可以列出正在进行的虚拟机进程,并显示虚拟金执行主类名称以及这些进程的...

2018-08-15 17:58:24 112

原创 深入理解java虚拟机-day2

继第一天了解了java虚拟机的内存情况和内存泄漏发生的场景后,今天我们将继续深入探讨java虚拟机的垃圾收集器与内存分配策略。一、对象已死吗。java堆内存中存放着几乎所有的java实例,这样,垃圾回收器在对内存进行回收之前,就需要考虑哪些对象可被回收,哪些不能。1、引用计数算法。给对象添加一个计数器,每当有一个地方引用它时,那么计数器就加1,当引用失效时,计数器就减1,任何时刻计...

2018-08-14 15:38:00 165

原创 深入理解java虚拟机-day1

之前一直打算深入的学习一下java虚拟机,但是苦于公司陆续新产品的研发,导致一直没有抽出时间来深入的学习一下java的虚拟机,最近项目上线完毕,也有了大把时间,所以会集中精力开始研习java虚拟机,并以此为跳板,让自己对程序的开发、对java的理解更上一层楼。一、运行时数据区域。 1、程序计数器。程序计数器是一块较小的内存空间,他可以看做是当前线程所执行的字节码的行号指示器。每条线...

2018-08-13 16:54:20 104

原创 写给自己的第一篇文章。

第一次听说10000hours理论是通过美国著名篮球训练师德文威廉姆斯的视频,当时作为一名资深篮球爱好者的我来说已经被震撼到了,视频里面那些没有天赋的球员对篮球的痴迷和态度深深地打动了我,从那一刻开始,我就已经知道了,成功毫无捷径,只有脚踏实地,才能成为别人口中的牛人。 毕业后,本人根据大学的专业‘自动’的成为了一名程序员,从我入行的那天起,说实话,我就已经感觉到其实我一点也不热爱这项事业(时至今

2017-04-03 08:23:46 219

elasticsearch进阶教程,elasticsearch开发教程

elasticsearch进阶教程

2019-06-12

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

TA关注的人

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