Mysql架构与历史

Mysql架构与历史

MySQL逻辑架构

客户端----->线程/进程处理---->(查询缓存<—解析器)->优化器

最上层不是MySql独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。

大多数Mysql的核心服务功能都在第二层,包括查询解析、分析、优化、缓存以及所有内置函数。

第三层包括存储引擎,负责MySQL中数据的存储和提取。

连接管理与安全性

每个客户端连接都会在服务器进程中拥有一个进程,这个连接的查询只会在这个单独的线程中执行。服务器会缓存线程,因此不需要位每一个新建的连接创建或者销毁线程。

优化与执行

MySQL会解析查询,并创建内部数据结构,然后进行各种优化。

并发控制

读写锁

读锁是共享的,相互不阻塞,而写锁是排他的,一个写锁会阻塞其他的写锁和读锁。

锁粒度

  • 表锁:最基本的锁,开销最小。
  • 行级锁:最大程度的支持并发处理(同时带来了最大的锁开销)

事务

ACID表示:原子性、一致性、隔离性、持久性。

  • 原子性:一个事物被视为一个不可分割的最小单元,整个事务要么全部成功要么全部失败。
  • 一致性:从一个一致的状态转换到了另一个一致的状态。
  • 隔离性:一个失误所做的修改在最终提交之前对其他事物是不可见的。
  • 持久性:一旦事务提交,所做的修改就会永久保存在数据库。

隔离级别

四种隔离级别:

  • READUNCOMMITED 未提交读

    事务的修改,即使没有提交,对其他事物也都是可见的。

  • READCOMMITED 提交读

    一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。

  • REPEATABLE READ 可重复读

    同一个事务中多次读取同样的记录是一致的。(会产生幻灯行)MySQL默认的事务隔离级别。

  • SERIALIZABLE 可串行化

    最高的隔离级别,读取的每一行数据上都加锁。

  • 脏读、不可重复读、幻读

死锁

事务日志

使用事务日志,存储引擎在修改表数据时只需要修改其内存拷贝,再把该修改行为记录到持久在硬盘上的事务日志中。

MySQL中的事务

两种事务型的存储引擎:InnoDB和NDB CLUSTER。

MYSQL的存储引擎

InnoDB存储引擎

MVCC支持高并发,实现了四个标准的隔离级别。默认级别是:REPEATABLE READ(可重复读),通过间隙锁策略防止幻读的出现。(事务处理比较好)

MyISAM存储引擎

MySQL5.1之后默认的搜索引擎,提供了大量特殊性,但不支持事务和行级锁,崩溃后无法安全修复。(请不要默认使用MyISAM,而是InnoDB)。(事务处理不好,如果主要使用slect和insert,这个比较好,但是安全修复性不好)

  • 存储

    MyISAM将表存储在两个文件中:数据文件和索引文件,分别一.MYD和.MYI位扩展名。

  • MyISAM特性
    • 加锁与并发:对整张表枷锁,而不是针对行。
    • 修复
    • 索引特性
  • MyISAM 压缩表
  • MyISAM性能

MySQL内建的其他存储引擎

  • Archive引擎
  • Blackhole引擎
  • CSV引擎
  • Federated引擎
  • Memory引擎
  • Merge引擎
  • NDB集群引擎

第三方存储引擎

  • OLTP类引擎
  • 面向列的存储引擎
  • 社区存储引擎

选择合适的引擎

  • 事务:InnoDB是目前最稳定的选择,如果不是事务,并且主要是查找插入,选择MyISM
  • 备份:InnoDB基本的要求。
  • 崩溃恢复:InnoDB好一些
  • 特有特性:MySQL中只有MyISAM支持地理空间搜索。

总结

MySQL拥有分层的架构。上层是服务器层的服务和查询执行引擎,下层是存储引擎。中间有很多不同作用的插件API。InnoDB95%以上都是用户最好的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值