事务隔离级别

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......