自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 深入浅出mysql笔记--18章SQL优化

一、定位执行慢的SQL语句1、通过查询慢日志定位执行效率低的SQL语句。2、通过show processlist 命令查看3、通过explan 分析低效语句type = all 全表,index 索引全扫描,range 索引范围扫描,ref 非唯一索引或者唯一索引的前缀扫描返回匹配某个单独值记录, eq_ref 扫描唯一索引,const/system 当作常量处理根据主键或者唯一索引key: .....

2018-04-30 23:07:38 179

原创 深入浅出MySQL笔记--第10章索引的设计和使用

1、每个表支持16个索引,总索引长度至少为256字节。2、MyISAM和InnoDB引擎默认创建的都是BTREE索引。不支持函数索引支持前缀索引。3、MyISAM还支持全文本(FULLTEXT)索引,该索引可以用于全文索引。索引的设计原则:最适合索引的列是出现在WHERE子句中的列,或者连接子句中的列,不是出现在select 关键字后选择的列。最优使用唯一索引。考虑索引列的基数越大,索引的效果越好...

2018-04-30 17:19:36 146

转载 mysql中null与“空值”的坑

字段属性的"空值"与"NULL"不一样相信很多用了MySQL很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问:1、我字段类型是not null,为什么我可以插入空值2、为毛not null的效率比null高3、判断字段不为空的时候,到底要  select * from table where column <> '' 还是要用 select * from tabl...

2018-04-30 17:12:01 1452

原创 深入浅出MySQL笔记--第7章存储引擎

MySQL存储引擎:MyIsAM:不支持事务:表锁,批量插入高,不支持外健。以读操作和插入操作为主,只有很少的更新和删除操作。类似数据仓储。InnoDB:支持事务;行锁,支持外健;对事务完整性比较高,在并发条件下要求数据的一致性比较高。MEMORY:存储存在于内存中的内容创建的表,默认采用hash索引。 MERGE:是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,MERGE表本身没...

2018-04-29 09:23:24 118

转载 SQL中的where条件,在数据库中提取与应用浅析

1        问题描述一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍: 给定一条SQL,如何提取其中的where条件?...

2018-04-28 10:16:51 260

转载 MySQL 加锁处理分析

1    背景    11.1    MVCC:Snapshot Read vs Current Read    21.2    Cluster Index:聚簇索引    31.3    2PL:Two-Phase Locking    31.4    Isolation Level    42    一条简单SQL的加锁实现分析    52.1    组合一:id主键+RC    62.2  ...

2018-04-26 12:37:37 113

转载 Mysql并发时经典常见的死锁原因及解决方法

 1.    mysql都有什么锁 MySQL有三种锁的级别:页级、表级、行级。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般 算法:next KeyLocks锁,同时锁住记录(数据)...

2018-04-25 23:27:48 148

转载 MySQL中select * for update锁表的范围

MySQL中select * for update锁表的范围MySQL中select * for update锁表的问题由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行TableLock (将整个资料表单给锁住)。 举个例子: 假设有个表单products ,里面有id跟name二...

2018-04-25 15:41:51 288

原创 synchronized原理

synchronized 是JVM基于进入和退出Monitor对象来实现同步的。Monitorenter和monitorexit指令。jDK1.6为了优化锁引入了偏向锁和轻量级锁。1、偏向锁:检查对象头Markword是否存储了线程的ID,如果进行CAS尝试把对象头mark word替换为自己线程ID。偏向锁撤销:再有一个线程CAS 对象头 Mark word 到线程ID 失败,在安全点进行撤销原...

2018-04-25 11:51:32 118

转载 事务隔离级别浅析---一致和原子的区别

事务是一个高度抽象的概念。事务要解决的问题是如何使多次操作,对外部看起来是一个整体的操作。理想的事务是一把锁,把一个一个的事务按照队列一样排列,不过这样性能我们无法接受,因此引入了引入了MVCC (Multi-Version Concurrency Control) 的概念,MVCC本质是copy-on-write。事务的本质是什么?事务=锁+MVCC怎么理解一致性一致性是指数据处于一种语义上的有...

2018-04-25 10:45:52 696

转载 select for update和select for update wait和select for update nowait的区别

CREATE TABLE "TEST6" ( "ID" VARCHAR2(30), "NAME" VARCHAR2(30), "AGE" NUMBER(2,0), "SEX" VARCHAR2(2), "ENAME" VARCHAR2(30), "ADDTIME" DATE)insert into TEST6

2018-04-25 10:38:39 2287

转载 数据库事务的一致性和原子性浅析

本文参考自知乎Oracle事务的概念:事务用户保证数据的一致性,它是由一组dml语句组成,这组dml语句要么全部执行成功,要么全部执行失败。1、事务一致性举个例子:假如你去银行转1000元给你的朋友,所有的操作都完成之后,并且提示你转账成功(假设银行是立即转账,不存在延时的情况),你发现你的账户上减少了1000元,但是你打电话给你的朋友确认时,而你的朋友的账户却没有因此增加1000元,那么我们认为...

2018-04-25 08:23:18 693

转载 深入理解乐观锁与悲观锁

在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernate、ta...

2018-04-25 08:22:23 105

转载 数据库中乐观锁与悲观锁的概念

锁( locking )业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “ 锁 ” ,即给我们选定的目标数据上锁,使其无法被其...

2018-04-24 23:38:04 114

转载 数据库阻塞和死锁的区别

数据库阻塞和死锁在程序开发过程经常出现,怎么样避免呢?下面通过Demo简单模拟下,数据库发生阻塞和死锁的现象:一、数据库阻塞:    数据库阻塞的现象:第一个连接占有资源没有释放,而第二个连接需要获取这个资源。如果第一个连接没有提交或者回滚,第二个连接会一直等待下去,直到第一个连接释放该资源为止。对于阻塞,数据库无法处理,所以对数据库操作要及时地提交或者回滚。Demo:--创建表create ta...

2018-04-24 23:20:42 424

转载 数据库常见死锁原因及处理

数据库是一个多用户使用的共享资源,当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严重影响应用的正常执行。   在数据库中有两种基本的锁类...

2018-04-24 23:19:15 451

转载 Oracle锁表查询和解锁方法

转载:https://blog.csdn.net/u013991521/article/details/53535818数据库操作语句的分类DDL:数据库模式定义语言,关键字:createDML:数据操纵语言,关键字:Insert、delete、updateDCL:数据库控制语言 ,关键字:grant、removeDQL:数据库查询语言,关键字:selectoracle表在什么情况下会被锁住DML...

2018-04-23 23:04:17 385

转载 浅谈服务治理与微服务

转载:https://blog.csdn.net/suifeng3051/article/details/53992560近期都在谈微服务,本人也正在做相关的工作,应领导要求做了一个微服务的分享,本篇文章主要来源于分享的PPT,所以有些简单,有问题可以在下面留言,大家 一起讨论。本篇文章先简单介绍了互联网架构的演变,进而介绍了服务化,最后再介绍微服务,微服务是服务治理的升级也是互联网架构的进一步延...

2018-04-18 23:27:50 123

转载 设计模式(二) 三种适配器模式 总结和使用场景

转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52848004本文出自:【张旭童的博客】一 概述定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。属于结构型模式主要分为三类:类适配器模式、对象的适配器模式、接口的适配器模...

2018-04-14 17:56:25 1145

原创 JCS缓存应用和源码解密

一、理解缓存的三个核心概念Elements : JCS是一个对象缓存,能放置一些对象或是”elements”并通过key来访问它们,很像一个hashtable。可以想象JCS是一个能过Name来获取的hashtables的集合。Regions : 每一个hashtables都被称做“region”,每一个region都能被独立于其他regions配置。例如,可以有一个称做城市的region,缓存了...

2018-04-10 00:42:57 381

原创 Spring getBean实例化过程

单例bean实例保存在DefaultSingletonBeanRegistry类的ConcurrentHashMap<String, Object>(256);中1、根据bean名称从缓存中查询,如果查询到再进行判断是否FactoryBean,如果不是直接返回实例;如果是FactoryBean,再判断是否取FactoryBean本身,如果是直接返回,否则调用FactoryBean工厂的...

2018-04-06 18:12:21 691

转载 Spring JdbcTemplate方法详解

JdbcTemplate主要提供以下五类方法:execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;query方法及queryForXXX方法:用于执行查询相关语句;call方法:用于执行存储过程、函数相关语句。 JdbcTemplate...

2018-04-05 22:22:53 147

转载 volatile是否能保证数组中元素的可见性?

在javaeye有位朋友问了我一个非常好的问题。问题一个线程向volatile的数组中设置值,而另一个线程向volatile的数组中读取。比如seg.setValue(2),随后另一个线程调用seg.getValue(2),前一个线程设置的值对读取的线程是可见的吗?我看书上说volatile的数组只针对数组的引用具有volatile的语义,而不是它的元素。ConcurrentHashMap中也有这...

2018-04-05 17:41:13 842

转载 TCP粘包/拆包问题

目录TCP粘包/拆包TCP粘包/拆包问题说明TCP粘包/拆包发生的原因粘包问题的解决策略未考虑TCP粘包导致功能异常案例 TimeServer的改造TimeClient的改造 利用LineBasedFrameDecoder解决TCP粘包问题LineBasedFrameDecoder和StringDecoder的原理分析 无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘...

2018-04-03 16:56:53 411

原创 SpringAOP源码解析总结

问题一、何时生成代理bean??在getBean()过程中,进行了bean的实例化、依赖注入、初始化后,通过bean后处理器进行生成代理类。在getBean()过程中的AbstractAutowireCapableBeanFactory类的 createBean ->doCreateBean 方法完成bean的创建和依赖注入后,进入initializeBean方法进行初始化在初始化bean后...

2018-04-02 19:13:13 241

转载 Aop自动创建代理对象的原理

转载:https://blog.csdn.net/elim168/article/details/78445835我们在使用Spring Aop时,通常Spring会自动为我们创建目标bean的代理对象,以使用对应的Advisor。前提是我们在使用Spring Aop时是使用的<aop:config/>或<aop:aspectj-autoproxy/>,这是因为当我们在ap...

2018-04-02 17:30:21 372

JavaEE7-api

JavaEE7-api, 可以直接打开查看API使用方法 。开发时以备查看。

2018-01-24

oracle11g客户端

oracle11g客户端,64位版。不用去官网注册账号下载了,这里直接下载吧。

2018-01-24

EXT学习笔记-项目应用实践

开发EXT的过程中总结的一些使用技巧。关于EXT对象封装的一些应用。

2010-03-15

空空如也

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

TA关注的人

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