摘要: 前言 在这唯快不破的互联网世界中,“快”(响应速度)成为良好体验的一个重要因素。那么如何量化响应速度哪? 性能指标的分类 为了更好的去监控整个系统的性能,做好全流程的优化,将指标分为了以下3类: System performance:这类指标从物理资源即服务器的角度出发,监测目前服务器的cpu,内存 阅读全文
posted @ 2016-05-02 12:29 三石雨 阅读(1299) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章《MySQL索引》介绍了索引的基本内容。本篇文章来说说MySQL索引原理。 MySQL索引原理 ##索引目的 我们为什么要建索引,原因很简单索引可以提高查询效率,可以类比图书中目录。这里就不再赘述索引的优势,请自行查阅资料。 ##索引原理 除了图书的目录,我们在生活中会经常发现类似的事情, 阅读全文
posted @ 2016-05-02 11:20 三石雨 阅读(939) 评论(1) 推荐(0) 编辑
摘要: 上一篇文章我们介绍了在关闭binlog的情况下,事务提交的大概流程。之所以关闭binlog,是因为开启binlog后事务提交流程会变成两阶段提交,这里的两阶段提交并不涉及分布式事务,当然mysql把它称之为内部xa事务(Distributed Transactions),与之对应的还有一个外部xa事 阅读全文
posted @ 2016-05-02 10:28 三石雨 阅读(9487) 评论(0) 推荐(0) 编辑
摘要: MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中。今天我们来讨论下事务的提交过程。 MySQL体系结构 由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交,通过两阶段提交,来保证存储引擎和二进制日志的一致。 本文仅讨论binlog未打卡状态下的提交流程, 阅读全文
posted @ 2016-05-02 10:19 三石雨 阅读(62035) 评论(1) 推荐(2) 编辑
摘要: 前言: 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎 阅读全文
posted @ 2016-05-01 18:21 三石雨 阅读(1535) 评论(0) 推荐(0) 编辑
摘要: 前言 前面我们提到MySQL的加锁,锁是作用于索引的。那么本篇文章说下索引。 聚簇索引(Clustered Indexes) InnoDB存储引擎的数据组织方式,是聚簇索引表:完整的记录,存储在主键索引中,通过主键索引,就可以获取记录所有的列. 每个InnoDB的表有一个特殊的索引称之为聚簇索引,每 阅读全文
posted @ 2016-04-20 23:45 三石雨 阅读(584) 评论(1) 推荐(1) 编辑
摘要: 一、MySQL事务隔离级别 我们都知道数据库隔离级别有四种, (《高性能mysql》) 常用数据库默认事务隔离级别 MYSQL :默认为REPEATABLE_READ ORACLE :默认为READ_COMMITTED 脏读 Dirty Read 当A事务正在访问数据,并且对数据进行了修改,而这种修 阅读全文
posted @ 2016-04-10 10:25 三石雨 阅读(2423) 评论(0) 推荐(0) 编辑
摘要: 一、引言 我们先来看一个多线程的运行场景:时间点1 :线程1查询值是否为A 时间点2 :线程2查询值是否为A 时间点3 :线程2比较并更新值为B 时间点4 :线程2查询值是否为B 时间点5 :线程2比较并更新值为A 时间点6 :线程1比较并更新值为C 在这个线程执行场景中,2个线程交替执行。线程1在 阅读全文
posted @ 2016-04-10 10:24 三石雨 阅读(14672) 评论(0) 推荐(0) 编辑
摘要: 一、引言 Java5以来,新增加的java.util.concurrent.atomic并发包中的一些原子类,是对Java部分数据类型的原子封装,在原有数据类型的基础上,提供了原子性的操作方法,保证了线程安全。其就是建立在CAS之上的。 下面以AtomicInteger为例,来看一下是如何实现原子性 阅读全文
posted @ 2016-04-10 10:22 三石雨 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 引言 为什么需要锁(并发控制) 在并发的环境中,会存在多个用户同时更新同一条数据,这时就会产生冲突。 冲突结果: 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。 脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。 因此为了解决上述问题,引入了并发控制机制。 乐观锁 阅读全文
posted @ 2016-04-10 10:15 三石雨 阅读(1770) 评论(2) 推荐(2) 编辑