性能优化

mysql优化1

2018-10-31  本文已影响4人  ant_1024
clipboard.png

第一层并不是mysql独有的,大多数基于网络的客户端/服务器的工具或服务都有类似的架构

不如链接处理,授权认证,安全等等

第二层是mysql核心功能位置,包括查询解析,分析,优化,缓存以及所有的内置函数所有的跨存储引擎的功能都在这一层实现:存储过程,触发器,视图等

第三层包含了存储引擎。存储引擎负责myslq中数据的存储和提取。服务器通过api与存储引擎进行通信,这些api屏蔽了不同存储引擎之间的差异

并发控制

读写锁:

在处理并发读或写时,可以通过实习那一个有两种类型的锁组成的锁系统来解决问题,这两种类型通常被称为共享锁和排他锁,也叫读锁和写锁

读锁是共享的额,写锁是排他的额,一个写锁会阻塞其他写锁和读锁

锁粒度

mysql中不同存储引擎支持不同的锁机制:myisam与memory存储引擎采用表及锁;BDB存储引擎采用的是页级锁,也支持表锁; innoDB存储引擎即支持行级锁,也持支表级锁,默认采用行级锁

表级锁:mysql中开销最小的策咯,加锁速度快,锁定整张表,粒度大,不会出现死锁,发生竞争的概率高,并发度最低,性能最差

行级锁:开销大,加锁速度慢锁定一行数据,粒度小,会出现死锁,发生锁竞争的概率最低,并发最高,性能高

页级锁:开销和加锁速度介于表锁和行锁之间,锁定一页数据。会出现死锁,锁竞争概率,并发性,性能均位于表锁和行锁之间 4k一页

事物:

事物就是一组原子性的sql查询,或者说一个独立的工作单元。如果数据库引擎能够成功的对数据库应用该组查询的全部语句,那么执行该组查询。如果其中任何一条语句应为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事物内的语句,要么全部执行成功,要么全部执行失败。良好的事物必须满足四大特性

事物的四大特性:

原子性(Atomicity)

一个事物中的sql,要么全部执行,要么全部不执行

一致性(Consistency)

一个事物执行前后,数据库中的所有约束依然满足

隔离性(lsolation)

一个事物执行过程中,数据不受另一个事物的影响

持久性(Durability)

一个事物执行完成后,事物对数据的修改必须持久化到数据库中

隔离级别:

隔离性其实比想象的复杂,在sql标准中定义了四中隔离级别,每一种级别都规定了一个事物中所做的修改,那些事物内和那些事物间是可见的,那些是不可见的。较低级别的隔离通常是可以执行更高级的并发,系统的开销也更低

*READ UNCOMMITED(未提交读):事物中修改的,即使没有提交对其他事物也都是可见的

*REDA COMMITTED(已提交读/不可重复读):事物重开始到提交之前所做的事情对其他事物都是不可见的

*REPEATABLE READ(可重复读):同一事物多次读取同样的记录结果是一直的,MySql默认

*SERIALIZABLE(序列化):事物串行执行

上一篇下一篇

猜你喜欢

热点阅读