`
风雪涟漪
  • 浏览: 511744 次
  • 性别: Icon_minigender_1
  • 来自: 大连->北京
博客专栏
952ab666-b589-3ca9-8be6-3772bb8d36d4
搜索引擎基础(Search...
浏览量:9195
Ae468720-c1b2-3218-bad0-65e2f3d5477e
SEO策略
浏览量:18693
社区版块
存档分类
最新评论

MySQL 架构 - MySQL逻辑架构

阅读更多

MySQL逻辑架构(MySQL’s Logical Architecture)

一个好的图片会是你更容易理解MySQL各个组件的工作方式。看图

 


 

最上一层所包含的服务并不是MySQL所独有的技术。它们都是服务于C/S程序或者是这些程序所需要的:连接处理,身份验证,安全性等等。

 

第二层是我们所感兴趣的。这是MySQL的核心部分。包括了查询的解析,分析,优化,缓存以及所有内置的函数(如日期,时间,数学运算,加密)。还有一些功能是涉及到了存储引擎,如存储过程,触发器,视图等。

 

第三层包括了存储过程。它们负责存储和获取所有存储在MySQL中的数据。就像Linux众多的文件系统一样。每个存储引擎都有自己的优点和缺陷。服务器是通过存储引擎API来与它们交互的。这个接口隐藏了各个存储引擎不同的地方。对于查询层尽可能的透明。这个API包含了很多底层的操作。如开始一个事物,或者取出有特定主键的行。存储引擎不能解析SQL,互相之间也不能通信。仅仅是简单的响应服务器的请求。

 

连接管理和安全

在服务器内部,每个client连接都有自己的线程。这个连接的查询都在一个单独的线程中执行。这个线程存在于一个核心或者CPU中。服务器缓存了线程,因此不需要为每个client连接单独创建和销毁线程。

 

当clients(也就是应用程序)连接到了MySQL服务器。服务器需要对它进行身份验证。这个身份验证是基于用户名,主机,以及密码。也使用了X.509的SSL连接。clients一连接上,服务器就验证它的权限。如这个client是否可以查询world数据库下的Country表的数据。这部分将在独立的章节进行说明。

 

优化和执行

MySQL的解析查询是创建了一个内部的结构(一个语法分析树)。之后就进行了各种各样的优化。这些优化包括了,查询语句的重写,读表的顺序,索引的选择等等。你可以通过查询语句的关键词对优化器进行一定的提示。这样做会影响到它的优化方式。你也可以让服务器对于各种优化进行说明。这样可以得知服务器的运行策略以及为了获得更好的效率,可以做更多的优化工作,如查询优化等。优化器会在以后的教程中详细介绍。

 

优化器是不会关心表所用到的存储引擎的类型,但是存储引擎会影响到服务器优化查询的方式。优化器需要知道存储引擎的一些特性,这些操作的消耗以及表数据的一些统计信息。例如,一些存储引擎支持索引,这对于查询是非常有用的。

 

在解析查询之前,要查询缓存,这个缓存只能保存查询信息以及结果数据。如果请求一个查询在缓存中存在,就不需要解析,优化和执行查询了。直接返回缓存中所存放的这个查询的结果。以后的章节会详细讲到。

 

 

 

 

 

 

  • 大小: 13.3 KB
分享到:
评论

相关推荐

    MySQL逻辑架构-存储引擎-用户权限密码详解

    服务层是MySQL架构的最上层,主要负责客户端的连接处理、授权认证以及安全检查,为客户端提供访问MySQL服务的接口。 核心层主要包含查询解析、分析优化SQL语句,以及缓存查询结果等功能,是MySQL处理数据的核心部分...

    MySQL-5.5.28-winx64安装包以及说明文档

    - **性能优化**:监控和调整MySQL的性能参数,如innodb_buffer_pool_size、query_cache_size等,以及合理设计数据库架构,可以显著提升系统性能。 - **复制与集群**:MySQL支持主从复制和集群配置,用于提高可用性...

    MySQL驱动 mysql-connector-net-6.4.5

    9. **存储过程和函数**:开发者可以方便地调用MySQL数据库中的存储过程和函数,实现复杂的业务逻辑。 10. **错误处理和日志记录**:MySQL Connector/Net提供详细的错误信息和日志记录功能,有助于开发者诊断和解决...

    mysql源码(mysql-8.2.0.zip)

    8. **插件系统**:MySQL支持插件化架构,开发者可以通过编写插件扩展其功能。源码中的`plugin`目录展示了如何设计和实现插件。 9. **存储过程与触发器**:MySQL支持创建存储过程和触发器,这些是数据库级别的程序...

    mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

    此版本的MySQL-5.7.28-linux-glibc2.12-x86_64.tar.gz是为Linux操作系统设计的,支持glibc2.12库,并且适用于x86_64架构的计算机。glibc(GNU C Library)是Linux系统中核心的C语言运行时库,提供许多系统调用和标准...

    linux-aarch-mysql-5.7.33_glibc2.12-x86_64.tar

    此外,定期备份数据库以防止意外的数据丢失,可以使用`mysqldump`命令进行逻辑备份,或者利用InnoDB的物理备份特性。 在数据库设计中,了解正常化原则、事务处理、索引优化、存储引擎(如InnoDB和MyISAM)的差异,...

    mysql-5.5.62-winx64

    1. `mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz`:这是一个Linux版本的MySQL发行包,基于glibc 2.12库,适用于64位x86架构的系统。安装时,用户需要解压此tarball文件,然后按照官方指南进行配置和安装。 2. `...

    mysql-essential-6.0.11-alpha-winx64

    10. **性能优化**:通过调整配置参数、合理设计数据库架构、使用合适的索引等方式,可以显著提升MySQL的性能。 总之,"mysql-essential-6.0.11-alpha-winx64"提供了在64位Windows系统上运行MySQL所需的基本工具,让...

    mysql配置mysql-proxy读写分离1

    MySQL Proxy 是一个开源工具,它允许你在 MySQL 客户端和服务器之间设置一个代理层,以便实现诸如负载均衡、故障切换、读写分离等高级功能。在这个场景中,我们将讨论如何配置 MySQL Proxy 来实现读写分离,以提高...

    MySQL-5.6.25-1.linux_glibc2.5.i386.rpm-bundle.tar

    "MySQL-5.6.25-1.linux_glibc2.5.i386.rpm-bundle.tar" 是一个针对Linux操作系统,特别是使用glibc 2.5库的i386架构的MySQL 5.6.25版本的安装包集合。这个压缩包包含了多个RPM(Red Hat Package Manager)文件,用于...

    mysql-8.2.0-macos13-arm64.dmg

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其最新版本为8.2.0,针对苹果公司的macOS操作系统进行了优化,特别是针对macOS 13(Ventura)系统中的Arm架构设备,例如搭载M1或M2芯片的Mac电脑。...

    mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

    2. **x86_64**:这个后缀表示这个版本是为64位(x86_64架构)的系统设计的。这意味着它不能在32位系统上运行。 3. **RPM包**:RPM包是Linux下的一种软件包格式,用于安装、升级和卸载软件。RPM包包含了软件的所有...

    mysql-5.5.40-win64.zip

    首先,我们要理解MySQL的基础架构。MySQL由几个关键组件构成,包括服务器守护进程(mysqld)、客户端工具(如mysql.exe用于命令行交互)以及一系列支持库和服务。在5.5.40版本中,MySQL引入了诸多改进,旨在增强其可...

    MySQL-server-5.5.23-1.linux2.6.i386.rar

    这里的“MySQL-server-5.5.23-1.linux2.6.i386.rar”是一个针对Linux操作系统(具体为Linux 2.6内核的i386架构)的MySQL服务器版本5.5.23的压缩包文件。这个版本在当时是一个稳定版,提供了许多新特性和性能优化。 ...

    mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

    8. **备份与恢复**:MySQL提供了多种备份工具,如mysqldump用于逻辑备份,以及Percona Xtrabackup或InnoDB Hot Backup用于物理备份。恢复过程则涉及重新导入SQL文件或应用日志文件。 9. **监控与管理**:MySQL提供...

    mysql-test-5.7.33-linux-glibc2.12-x86_64.tar.gz

    MySQL支持多种备份方法,如mysqldump工具进行逻辑备份,或者使用Percona Xtrabackup进行物理备份。恢复时,只需逆向操作即可。 9. **性能监控**: MySQL 5.7提供了性能仪表板插件,可以分析服务器性能,帮助管理...

    mysql-5.7.34-winx64.zip

    3. **创建分片架构**:在MySQL中创建相应的数据库和表结构,配置好分片规则。 4. **数据迁移**:将现有数据迁移到新的分片架构中,这可能需要停机操作或使用在线迁移工具。 5. **应用层改造**:更新应用程序以适配分...

    MySQL-server-community-5.1.47-1.rhel5.x86_64.rpm

    MySQL 5.1引入了分区功能,允许用户将大型表分成多个逻辑部分,以提高查询效率和管理数据的便利性。这在处理大数据量时非常有用,因为可以并行处理不同分区的数据。 4. **复制功能**: MySQL的复制功能允许数据从...

    mysql-5.7.30-el7-x86_64.tar.gz

    MySQL 5.7.30 是一个非常重要的版本,它是MySQL数据库系统的一个稳定发行版,专为Linux操作系统(特别是CentOS 7)设计的x86_64架构。这个压缩包“mysql-5.7.30-el7-x86_64.tar.gz”包含了在Linux环境下安装和运行...

    mysql57-community-release-el7-11.noarch.rpm

    由于它是`noarch`,这意味着它是与架构无关的,可以在任何支持RHEL 7的处理器架构上安装。 6. **MySQL 5.7的新特性**: - **InnoDB存储引擎改进**:包括更高的并发性能,更快的插入速度,以及对表空间加密的支持。...

Global site tag (gtag.js) - Google Analytics