事务隔离级别

1. 介绍

事务具备ACID的特性,本次主要回顾下事务隔离性的理解。 这个概念网上讨论的也很多,甚至自己之前也写过一篇文章总结,但是以前的理解还是不够到位,这次再重新回顾下。

2. 定义多种隔离性的原因

事务隔离的不同程度,实际上是通过不同的上锁要求来控制事务并发的能力。所以谈论事务隔离的时候,我们首先要想到“锁”和“并发”。上锁最严格,则意味着事务之间隔离性性越好,效率最低,但是自然也是最安全的。 上锁要求宽松,不仅减少了锁的开销,也提升了事务并发的能力,但是也增大了死锁的概率,以及并发带来的不可重复度、脏读和幻读等问题。

3. 基于锁的事务隔离级别

一般我们说的事务......

mysql存储过程生成随机测试数据

1. 介绍

有时候我们需要一些模拟数据来进行测试,今天简单记录下如何用存储过程生成一些随机数据。

2. 建表

我们新建一张学生表和教师表如下:

CREATE TABLE student(

id INT NOT NULL AUTO_INCREMENT,

first_name VARCHAR(10) NOT NULL,

last_name VARCHAR(10) NOT NULL,

sex VARCHAR(5) NOT NULL,

score INT NOT NULL,

PRIMARY KEY (`id`)

);

CREATE TABLE teacher(

id INT NOT......

mysql性能分析方法、工具、经验总结

1. 介绍

MYSQL的性能瓶颈分析一般从两个维度去排查:

操作系统层面: 这个可以利用vmstat、iostat等工具查看OS本身在CPU、磁盘、内存上的瓶颈。提前利用一些mysqlslap这种工具做一些benchmark避免硬件资源设计部合理。

MySQL本身使用不当导致的性能瓶颈(索引问题、SQL语句问题、配置问题等等)。

PS: 我这里实验用的都是5.7版本的

2. 查询与索引优化

2.1 状态检查

我们可以通过show命令查看MySQL状态及变量,找到系统的瓶颈:

#显示状态信息(扩展show status like ‘XXX’)

Mysql&g......

大规模数据存储查询解决方案总结

1. 介绍

这个信息时代,每天都有大量数据产生。这对我们的技术也提出了新的挑战。今天简单看了点东西做了点总结。

2. 发展史

单纯从时间线来看,数据存储经历了 RDBMS->NoSQL->NewSQL

下面我们就以这三个类别来讨论。

PS: 我将不支持ACID特性的的都归纳到NoSQL哦,比如说ES。

3. RDBMS

RDBMS已经存在几十年了,非常成熟稳定。所以无论选择啥存储方案,一般都仍然会使用RDBMS做主存储。而且绝大部分场景,可以通过以下方式来提升RDBMS的查询效率:

建索引:合理的建和使用索引,查询亿级别的数据,控制在......

Linkedin ESPRESSO数据库

1. 介绍

Espresso的详细说明见博文:Introducing Espresso - LinkedIn's hot new distributed document store

本文对博文内容做些简单介绍总结。

2. 动机

Espresso是一个分布式的、容错的NoSQL数据库。Linkedin有Oracle(RDBMS)和Voldemort(自己研发的Key value存储)。ESORESSO是在RDBMS和NOSQL之间的一个产品。可以借助下图来理解: