1、概述
我们对某技术的学习,目的很简单,一是为了学习技术的使用;二是进行思想的学习。学习技术时,先理解思想,对于技术的掌握是大有益处的,一般理解技术思想的途径,从他的架构设计和源码是最直接的。
mysql是一个开源的关系型数据库产品, 采用处理与存储分离的设计,灵活性高,这些年已成为互联网应用上常用的关系型数据库。互联网系统特点是高并发,大数据量,一般瓶颈最终还是会落到数据库,所以优化mysql是必不可少的。想对mysql理解,我们先理解它架构设计思想。
安装mysql后主要有下面几个组件:
mysql服务器:
-
也称为mysqld;
-
管理内存和碰盘上实际的数据库访问;
-
多线程的;
-
支持多客户端连接;
-
支持多种存储引擎;
-
单机上可以安装多个实例。
客户端程序:
bin目录下实用的程序
非客户端面程序:
独立于服务器的客户端程序
2、mysql逻辑结构
mysql采用分层架构,并分成了多个子系统,每个子系统都有相互独立又互相协助,共同完成数据库服务器功能。下图为mysql逻辑架构图
公共服务层:
为整个系统提供基础、公用的服务;
服务层:
分为有API,Query Parsing,Optimization,Execution,Query Cache等子系统。
API:用于接收SQL命令,如我们通过客户端直接select * from table;
Query Parsing:解释查询,对传入的SQL语句进行解释、验证,并生成SQL_ID与SQL语句关联;
Optimization:对Query Parsing传入的SQL,根据不同的存储引擎生成优化后的执行计划,并重写查询。
Execution:执行根据Query Parsing和Optimization处理过的数据。
Query Cache:基于内存的缓存,根据SQL_ID.SELECT来判断是否已经处理过相同的查询语句,如果处理过,直接从Query Cache中返回结果集,加快读速度。
存储引擎层:
Mysql中特性之一,用于进行数据处理和文件管理,采用的是处理与存储分离,可以根据应用需要进行相应灵活的选择。mysql中存储引擎有事务型和非事务型的,我们可以通过命令show engines来查看当前mysql数据库版本支持的存储引擎。
当前用的是MYSQL5.6.
InnoDB,默认的存储引擎,支持事务,采用行锁;
MyISAM:读数据很快,不支持事务,采用表锁机制;
MEMORY:基于内存的数据库,不支持事务,采用表锁.
其它的数据引擎用的很少,暂时不介绍,但图中有一种存储引擎是没有显示出来的,即NDB,我们暂时可以把它当做是InnoDB的集群版本。
来,坐来下
品位这一杯茶
让我们一起并肩成长
成长会让我们看的更远
走的更长
相关推荐
MySQL逻辑架构剖析 在本篇章中,我们将深入探讨MySQL的逻辑架构,并对其进行剖析。MySQL是一个关系型数据库管理系统,广泛应用于各种应用场景中。本篇章将从逻辑架构的角度来介绍MySQL的工作机制,涵盖连接层、服务...
如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:...
### MySQL性能调优与架构设计的关键知识点 #### 一、MySQL概述 - **MySQL Server简介** - **定义**: MySQL是由MySQL AB公司...这对于希望深入了解MySQL并对其进行有效管理和优化的专业人士来说是非常有价值的资源。
架构篇则探讨了MySQL复制技术,包括主从复制和多源复制等,以及如何部署高可用架构。通过这些技术可以实现数据的实时备份和高可用性部署,从而提高数据的安全性和系统的稳定性。 最后,MySQL Cluster是MySQL的一个...
深入理解MySQL如何处理SQL查询,是进行性能调优的基础。从解析、优化、执行计划生成到数据检索,每个步骤都有可能成为性能瓶颈。 **2.2 索引优化** 合理使用索引可以显著提高查询速度。设计索引时,需考虑查询模式...
以上内容只是《深入理解MySQL核心技术》一书的部分精华,实际书籍中还有更多关于MySQL服务器配置、日志系统、分区表、视图等高级特性的深入解析。通过学习本书,读者不仅能掌握MySQL的基本操作,还能深入了解其底层...
- **逻辑架构**:MySQL采用了分层架构,主要分为Server层和服务层。 - **物理架构**:包括表空间(Tablespace)、段(Segment)和页(Page)等概念。 - **掌握这些基础架构知识是优化MySQL性能的前提。** 2. **...
通过以上内容的介绍,我们可以看出,《深入理解MySQL》不仅是一本面向初学者的教程,也涵盖了大量进阶知识和技术细节。无论是对于刚接触数据库的新手还是希望进一步提升技能水平的开发者来说,都是一份宝贵的学习...
总之,深入理解MySQL需要涵盖SQL语法、数据库设计、性能优化、存储引擎选择、事务处理、备份恢复、高可用架构、监控调优、安全管理和大数据处理等多个方面。这不仅是技术深度的体现,也是保障业务连续性和数据安全性...
本资料集“MySQL性能调优与架构设计”旨在深入探讨如何优化MySQL的性能并构建可扩展的数据库架构。 1. **性能调优** - **查询优化**:优化SQL查询是提升性能的关键。这包括避免全表扫描,使用索引,减少子查询,...
通过深入理解上述知识点并结合`ugms2.sql`和`ugms.sql`中的实际示例,我们可以更有效地学习和实践MySQL性能调优与架构设计。分析这些文件,了解它们的数据库设计模式,然后进行模拟测试和调优,将有助于我们掌握这些...
在深入分析MySQL加锁处理之前,首先需要了解MySQL数据库的基本架构以及锁机制的相关概念。MySQL是一个支持插件式存储引擎的数据库系统,其中InnoDB存储引擎因其支持事务处理和外键约束而被广泛使用。本文将重点讨论...
### 阿里云-深入MySQL实战:快速了解MySQL核心技术 #### 一、MySQL与阿里巴巴的技术结合 MySQL作为全球常年排名前两位的数据库系统之一,因其高性能、稳定性及丰富的功能特性,一直以来都是开发者们学习数据库领域...
MySQL是一种流行的开源关系型数据库管理系统,它以其高效、可靠和...掌握这些基础知识,能帮助我们深入理解MySQL的工作原理,更好地设计和优化数据库系统。无论是开发、运维还是数据库管理,这些知识都是必不可少的。
本资料集围绕这一主题,提供了PDF中文版全册,旨在帮助读者深入理解并掌握相关知识。 一、MySQL性能调优 1. 查询优化:优化SQL语句是性能调优的基础,包括避免全表扫描,合理使用索引,减少JOIN操作,以及避免在...
总之,深入理解MySQL原理和优化涉及众多方面,从架构到存储、查询、索引、事务、性能调优等,每个环节都对数据库的性能有重大影响。通过对这些知识的掌握,我们可以更好地设计、管理和维护MySQL数据库,提升系统的...