MySql教程

MYSQL性能调优一——架构

本文主要是介绍MYSQL性能调优一——架构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.Mysql的逻辑架构

  

 

   第一层是基于网络客户端的连接处理工具架构,并非Mysql独有,第二层是Mysql的核心部分,大多数核心功能都在这一层,包括查询、解析、分析、优化等,存储过程、触发器和视图都在这一层实现

第三层包含了存储引擎,除了InnoDB外,存储引擎不会去解析SQL。

2.优化与执行

  MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询、决定表的读取顺序,以及选择合适的索引等。用户可以通过特殊的关键字提示(hint)优化器,影响它的决策过程。也可以请求优化器解释(explain)优化过程的各个因素,使用户可以知道服务器是如何进行优化决策的,并提供一个参考基准,便于用户重构查询和schema、修改相关配置,使应用尽可能高效运行。且优化器不会关心下层的存储引擎是什么,但是存储引擎会影响优化查询的性能。对于SELECT语句,解析查询前Mysql会首先检查查询缓存,在里面找到则不必执行查询解析、优化和执行的过程

3.读写锁(共享锁和排他锁)

  读锁即共享,同一时间有多个进程、线程可以获取这个锁,但是写锁即排他,仅有一个进程、线程能够执行写入。大多数时候,Mysql锁的内部管理是透明的

4.粒度锁(表级锁、行级锁)

  表锁会锁定整张表,一个用户在对表进行写操作时,需要先获得写锁,且写锁会优先抢占而读锁不能。

  行锁只在存储引擎层实现,而MYSQL服务器层没有实现

5.事务

  一个事务的所有操作,要么同时成功要么同时失败。其具有原子性、一致性、隔离性和持久性。

6.隔离级别

  RU:未提交读,即事务中的修改即使没有提交对其他事务也是可见的,会导致脏读、幻读、不可重复读

  RC:提交读,一个事务提交了的修改对其他事务才是可见的,但是会导致不可重复读

  RR:可重复读

  S:串行化

这篇关于MYSQL性能调优一——架构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!