`

MySql数据库逻辑架构讲解

阅读更多


与其他数据库相比,MySql 数据库有自己独特的地方,它的架构可以在不同的场景中应用并发挥良好的作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离。这种架构的最大优点是可以根据业务和实际需求选择适当的存储引擎。下面是MySql 的逻辑架构图:

 

一:连接层:

最上层是客户端和连接服务,包括本地sock 通信和大多数基于客户端/服务端工具实现的类似于tcp/ip 的通信。主要完成一些类似于链接处理、授权认证、以及相关的安全方案。在该层上引入了连接池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL 的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

二:服务层:

第二层架构主要完成大多数的核心服务功能,如SQL 接口,并完成缓存的查询,SQL 的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层上实现,如过程,函数等。在该层,服务器会解析并创建相应的内部解析树,并完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成对应的执行操作。如果是select 语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。

三:引擎层:

在存储引擎层,存储引擎真正的负责了MySql 中数据的存储和提取,服务器通过API 与存储引擎进行通信。不同的存储引擎具有不同的功能,这样使得我们可以根据自己的实际需求选取合适的存储引擎。

四:存储层:

数据存储层编程开发,主要将数据存储在运行于裸设备上的文件系统上,并完成与存储引擎的交互。

根据上图我们可以知道MySql 至少十种以上的存储引擎,但是一般我们使用的存储引擎主要是MyISAM 与 InnoDB 。下面主要对比一下两种存储引擎:

  对比项

     MyISAM

     InnoDB

   主外键

    不支持

    支持

   事务

    不支持

    支持

   行表锁

    表锁,即使操作一条记录会锁住整个表,不适合高并发的操作

    行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作

   缓存

    只缓存索引,不缓存真实数据

    不仅缓存索引还缓存真实数据,对内存要求较高,并且存储大小对性能有决定性的影响

   表空间

    小

    大

   关注点

    性能

    事务

  
分享到:
评论

相关推荐

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    02-MySQL高可用需求与架构讲解mp4 03-大规模集群架构中MySQL高可用的位置和架构mp4 04-MySQL高可用实战模拟环境描述mp4 05-MySQL高可用生产场景配置及网络地址规划mp4 06-MySQL高可用实施正式环境准备与裂脑注意mp4 ...

    Mysql实战深层原理讲解

    01讲基础架构:一条SQL查询语句是如何执行的 02讲日志系统:一条SQL更新语句是如何执行的 03讲事务隔离:为什么你改了我还看不见 04讲深入浅出索引(上) 05讲深入浅出索引(下) 06讲全局锁和表锁:给表加个字段...

    mysql高级视频教程百度云(2019).txt

    08.MySQL高级_MySQL逻辑架构简介.avi 07.MySQL高级_MySQL配置文件.avi 06.MySQL高级_修改字符集.avi 05.MySQL高级_安装位置.avi 04.MySQL高级_ROOT密码设置和开机自启动.avi 03.MySQL高级__RPM安装.avi ...

    尚硅谷Java视频教程_MySQL高级视频

    尚硅谷_MySQL高级_MySQL逻辑架构简介 · 09.尚硅谷_MySQL高级_存储引擎简介 · 10.尚硅谷_MySQL高级_SQL性能下降原因 · 11.尚硅谷_MySQL高级_SQL执行加载顺序 · 12.尚硅谷_MySQL高级_七种JOIN理论 · 13....

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    本书适合所有希望构建和管理高性能、高可用性的mysql数据库系统的开发者和dba阅读。 目录 · · · · · · 前言 第一部分 mysql5.5 新特性篇 第1章 mysql5.5介绍 2 1.1 性能上的显著改变 2 1.1.1 mysql5.5默认...

    384-毕设-分布式架构网上商城-源码-视频讲解-LW-PPT.rar

    数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器:谷歌浏览器 Java配置环境链接:https://pan.baidu.com/s/1Dzpiqb46mrukQzXOEj3otw ...

    129-毕设-基于SSM架构的网上书城系统-源码-视频讲解-LW-PPT.zip

    数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器:谷歌浏览器 Java配置环境链接:https://pan.baidu.com/s/1Dzpiqb46mrukQzXOEj3otw ...

    (全)传智播客PHP就业班视频完整课程

    10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 controller view调用 10-16 2 投票系统...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 controller view调用 10-16 2 投票系统...

    史上最全传智播客PHP就业班视频课,8月份视频

    10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 controller view调用 10-16 2 投票系统...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 controller view调用 10-16 2 投票系统...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 controller view调用 10-16 2 投票系统...

    Golang mk教程-Go语言视频零基础入门到精通项目实战web编程

    第10天-高级-Web开发与Mysql数据库 第11天-高级-项目实战-日志收集系统kafka库实战 第12天-高级-etcd、contex、kafka消费实例、logagent 第13天-实战-日志管理平台开发 第14天-实战-商品秒杀架构设计与开发 第15天-...

    PHP秒杀系统 高并发高性能的极致挑战 从万次到亿万次的性能优化,从单机到分布式的架构升级

    本课由360架构师亲授,以360真实秒杀系统为切入点, 从秒杀的功能入手,分层递进讲解,逐步让大家掌握系统的设计、架构以及优化,从容应对百万级、过亿级的秒杀活动及其它海量访问的互联网系统。1. Linux / Nginx / ...

    最新运动器械购物商城+jsp.zip

    4. **数据库设计**:可能使用了MySQL数据库存储数据,通过MyBatis框架进行数据持久化操作。数据库中可能存储了商品信息、用户信息、订单信息等数据模型。 5. **系统架构**:整个商城系统可能采用了Spring MVC框架,...

    JavaEE大型分布式电商项目 淘淘商城 29期

    淘淘商城是一个综合性的B2C平台,类似与京东、天猫商城,其打造的是商业模式为“社区+电子商务”, 用户不只是...分布式部署架构讲解以及实施 分组实战 + 项目总结以及就业指导 拔高--Redis集群、Tomcat优化、MySQL优化

    Hbase+Spring boot实战分布式文件存储

    8-1 功能梳理和数据库设计 8-2 文件存储设计方案一 8-3 文件存储设计方案二 第9章 子模块-数据库操作模块 hos服务基础数据库选用mysql,本章实现基于SpringBoot+Mybatis的mysql数据库的操作模块,采用c3p0连接池,...

    MyISAM InnoDB 区别

     另外,可能有人会说你MyISAM无法抗太多写操作,但是我可以通过架构来弥补,说个我现有用的数据库平台容量:主从数据总量在几百T以上,每天十多亿 pv的动态页面,还有几个大项目是通过数据接口方式调用未算进pv总数...

Global site tag (gtag.js) - Google Analytics