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

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之间的一个产品。可以借助下图来理解:

数据库架构设计的三种模式share nothing,share everythong,share disk

数据库构架设计中主要有Shared Everthting、Shared Nothing、和Shared Disk:

Shared Everthting:一般是针对单个主机,完全透明共享CPU/MEMORY/IO,并行处理能力是最差的,典型的代表SQLServer

Shared Disk:各个处理单元使用自己的私有 CPU和Memory,共享磁盘系统。典型的代表Oracle Rac, 它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好。其类似于SMP(对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能 。

Shared No......

事务的四种隔离级别

1. 事务的隔离性

之所以要引入事务的不同隔离级别,其实还是为了提升单个事务单元的并发能力。多个事务之间通过锁分离可以提升多个事务单元的并行能力:

这里推荐一篇好文:拨开云雾见天日:剖析单机事务原理

1.1 事务隔离性强弱

事务的隔离级别从弱到强(严格)依次为:

Read Uncommitted”->“Read Committed”->“Repeatable Read”-&g......

事务与分布式事务原理与实现2(笔记)

1.分布式事务

分布式事务无法完全取代单机事务,因为它存在自己的代价。

2. 分布式事务中的网络

优点:去中心化。因为进程是通过网络通信的,所以使得系统带来水平扩展性;更好的数据安全,提供更多的冗余,从而提高了系统的可用性。

缺点:共享数据变得困难,不使用共享内存而使用消息。在写入的时候冗余一份即消息复制。网络通信导致很大的延迟。而且网络会丢包。

3.基于锁的事务实现中遇到的问......