MySQL架构

MySQL与其它数据库相比,应用场景多,足够灵活,能够适应不同环境,也可以嵌入到应用程序中,如支持数据仓库,内容索引,部署软件、高可用的冗余系统,在线事物处理系统等。

下图是MySQL的逻辑架构图,分为三层。最顶层是客户端,第二层是MySQL的核心服务,包括查询缓存、分析、优化等所有内置的函数,第三层是存储引擎,负责数据的存储和提取,服务器通过API与存储引擎通信,存储引擎的API中有很多底层函数,来执行一些操作。

连接线程处理:每个客户端连接都会在服务器进程中开启一个线程,这个连接下的查询都会在线程中进行,连接时需要认证。

优化:MySQL解析查询并创建内部数据结构,然后对其优化,优化器需要请求存储引擎提供容量或某个具体操作的开销信息。对于SELECT语句,解析查询前,会优先查询缓存,如果查到了,就不需要再执行解析优化的过程。

并发控制:多个查询同一时刻修改数据,就会产生并发问题,这里涉及到锁。

1)读写锁:处理并发读或写时,可以通过读锁和写锁,读锁是互不干扰到饿,可以多个线程同时读取相同的资源,写锁是排他的,一个写锁会阻塞其它写锁和读锁,这样才能防止一个线程修改时其它线程也同时写入。

2)锁粒度:提高并发性的方法就是锁定对象更精准,锁定的数据量越小,系统并发越高,但是锁的操作也是消耗资源的,因此需要选择一个合适的锁策略,平衡锁开销和数据安全。

表锁:MySQL中最基本的锁策略,开销做小,会锁定整张表,一个线程对表写入时,阻塞其它线程对这张表的所有读写操作。

行级锁:可以最大程度支持并发处理,但是会增加锁开销。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值