与其他数据库相比,MySql 数据库有自己独特的地方,它的架构可以在不同的场景中应用并发挥良好的作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离。这种架构的最大优点是可以根据业务和实际需求选择适当的存储引擎。下面是MySql 的逻辑架构图:
一:连接层:
最上层是客户端和连接服务,包括本地sock 通信和大多数基于客户端/服务端工具实现的类似于tcp/ip 的通信。主要完成一些类似于链接处理、授权认证、以及相关的安全方案。在该层上引入了连接池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL 的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。
二:服务层:
第二层架构主要完成大多数的核心服务功能,如SQL 接口,并完成缓存的查询,SQL 的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层上实现,如过程,函数等。在该层,服务器会解析并创建相应的内部解析树,并完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成对应的执行操作。如果是select 语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。
三:引擎层:
在存储引擎层,存储引擎真正的负责了MySql 中数据的存储和提取,服务器通过API 与存储引擎进行通信。不同的存储引擎具有不同的功能,这样使得我们可以根据自己的实际需求选取合适的存储引擎。
四:存储层:
数据存储层编程开发,主要将数据存储在运行于裸设备上的文件系统上,并完成与存储引擎的交互。
根据上图我们可以知道MySql 至少十种以上的存储引擎,但是一般我们使用的存储引擎主要是MyISAM 与 InnoDB 。下面主要对比一下两种存储引擎:
对比项
MyISAM
InnoDB
主外键
不支持
支持
事务
不支持
支持
行表锁
表锁,即使操作一条记录会锁住整个表,不适合高并发的操作
行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作
缓存
只缓存索引,不缓存真实数据
不仅缓存索引还缓存真实数据,对内存要求较高,并且存储大小对性能有决定性的影响
表空间
小
大
关注点
性能
事务
分享到:
相关推荐
本文将详细讲解如何在Android中实现连接到MySQL数据库,以及相关的技术要点。 首先,理解基本概念:Android是运行在移动设备上的操作系统,而MySQL是服务器端的关系型数据库管理系统。由于Android设备通常不能直接...
MySQL数据库基础实例教程是针对初学者的一套系统性学习资源,尤其适合想要了解数据库管理和开发的人群。本教程分为多个章节,涵盖了从基础到进阶的各个关键领域,旨在通过实例教学来帮助学习者深入理解MySQL的核心...
根据提供的文件信息,这里主要关注的是“MySQL数据库应用从入门到精通 第2版”这一书籍。下面将基于此书的标题、描述以及可能涉及的部分内容,深入探讨与MySQL数据库相关的知识点。 ### MySQL数据库简介 MySQL是一...
本文将深入探讨150道MySQL数据库高频面试题中的关键知识点,帮助你准备面试,提升职业技能。 一、MySQL基础 1. 数据库引擎:InnoDB与MyISAM是MySQL中最常见的两个存储引擎,InnoDB支持事务处理,具有行级锁定,适合...
02-MySQL高可用需求与架构讲解mp4 03-大规模集群架构中MySQL高可用的位置和架构mp4 04-MySQL高可用实战模拟环境描述mp4 05-MySQL高可用生产场景配置及网络地址规划mp4 06-MySQL高可用实施正式环境准备与裂脑注意mp4 ...
【创建于MySQL数据库连接】这篇教程主要讲解了如何在Web应用程序中建立与MySQL数据库的连接。MySQL是一个广泛应用的开源数据库管理系统,以其高速、灵活和稳定的特点成为Web开发的首选。SQL,即Structured Query ...
1. **理解数据库**:讲解数据的概念,数据模型的种类,以及数据库系统的组成和结构。教学重点在于理解数据库系统的体系结构,难点在于掌握这一复杂架构。 2. **设计数据库**:涵盖数据库设计的概览,需求分析,以及...
- **逻辑架构**:MySQL采用了分层架构,主要分为Server层和服务层。 - **物理架构**:包括表空间(Tablespace)、段(Segment)和页(Page)等概念。 - **掌握这些基础架构知识是优化MySQL性能的前提。** 2. **...
### MySQL数据库高可用高并发集群实战演练视频教程 #### 知识点一:MySQL数据库基础 - **数据库管理系统(DBMS)**:介绍MySQL作为一款关系型数据库管理系统的基础概念,包括其架构、特点以及与其他数据库系统的...
本书通过深入讲解以上各个主题,为读者提供了全面的高性能MySQL数据库系统管理知识,无论是初学者还是经验丰富的DBA,都能从中受益。通过阅读和实践,你将能够构建和维护一个强大、可靠的MySQL环境,满足业务的高...
教师可以通过讲解 MySQL 的逻辑架构,帮助学生理解 SQL 查询的执行流程,然后通过实例演示和实验操作,让学生亲身体验和优化数据库查询。同时,引入实际案例,让学生面对真实的大数据环境,解决实际问题,这将有助于...
**Python_django_web学生管理系统** 是一款基于Python的Django框架和MySQL数据库构建的Web应用程序。这个项目旨在提供一个高效、便捷的平台,用于管理学生信息,包括学生的添加、删除、查询和修改等功能。通过使用...
本文将详细讲解基于微信小程序、PHP以及MySQL数据库的商城系统,特别是其中的三级分销功能。首先,微信小程序是一种轻量级的应用开发平台,允许开发者在微信内构建原生体验的应用,无需用户安装即可使用,提高了用户...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,用于存储和管理各种类型的数据。性能调优与架构设计对于确保MySQL高效运行至关重要。...通过持续的学习和实践,可以有效提升MySQL数据库的运行效率和稳定性。
文章适合已有一定基础的读者,尤其是Java架构师和MySQL爱好者。内容涵盖MySQL的启动、字符集、记录存储、索引机制等方面。 首先,文章指出MySQL的索引并非凭空产生,而是为了提高查询效率。作者强调,《MySQL是怎样...
6. **音视频教程**:这些教程可能是对SSM框架、MySQL数据库操作、网站开发流程等进行详细讲解的视频教学,帮助初学者快速理解和上手。 7. **论文**:可能包含了项目的研究背景、目标、设计方案、技术选型、实施步骤...
本文将详细讲解如何使用Spring、SpringMVC和MyBatis三大框架构建一个完整的酒店管理系统,并结合MySQL数据库进行数据存储与管理。 首先,Spring框架作为基础,它提供了依赖注入(Dependency Injection,DI)和面向...
这本书可能是关于Oracle数据库的高级编程指南,涵盖了数据库设计、事务处理、并发控制和错误处理等方面,对于深入理解Oracle数据库的架构和工作原理非常有帮助。 4. **精通Oracle.10G备份与恢复**: 数据备份与...
本项目是基于Java语言和MySQL数据库实现的,它包括了程序代码、数据库文件以及系统运行的音视频资料,提供了一个完整的解决方案。 1. Java语言:Java是一种广泛使用的面向对象的编程语言,具有跨平台性、安全性高和...
MySQL是一种广泛使用的开源...本MySQL入门教程将深入讲解这些知识点,帮助初学者快速掌握数据库管理的基础,并为更高级的应用打下坚实的基础。通过实践和不断的学习,你将能够熟练地运用MySQL解决各种数据管理问题。