`
hideto
  • 浏览: 2692805 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL Architecture

阅读更多


MySQL Core Modules:
Server Initialization Module
The Server Initialization Module is responsible for the server initialization on startup
sql/mysqld.cc
sql/sql_acl.cc
slq/slave.cc

Connection Manager
The Connection Manager listens for incoming connections from clients, and dispatches the requests to the Thread Manager
sql/mysqld.cc

Thread Manager
The Thread Manager is responsible for keeping track of threads and for making sure a thread is allocated to handle the connection from a client
sql/mysqld.cc
sql/sql_class.cc

Connection Thread
The Connection Thread is the heart of the work of processing client requests on an established connection
sql/sql_parse.cc

User Authentication Module
The User Authentication Module authenticates the connecting user and initializes the structures and variables containing the information on his level of privileges
sql/sql_parse.cc
sql/sql_acl.cc
sql/password.cc

Access Control Module
The Access Control Module verifies that the client user has sufficient privileges to perform the requested operation
sql/sql_acl.cc
sql/sql_parse.cc

Parser
The Parser is responsible for parsing queries and generating a parse tree
sql/sql_parse.cc
sql/sql_yacc.cc
sql/sql_lex.cc

Command Dispatcher
The Command Dispatcher is responsible for directing requests to the lower-level modules that will know how to resolve them
sql/sql_parse.cc

Query Cache Module
The Query Cache Module caches query results, and tries to short-circuit the execution  of queries by delivering the cached result whenever possible
sql/sql_cache.cc

Optimizer
The Optimizer is responsible for creating the best strategy to answer the query, and executing it to deliver the result to the client
sql/sql_select.cc

Table Manager
The Table Manager is responsible for creating, reading, and modifying the table definition files (.frm extension), maintaining a cache of table descriptors called table cache, and managing table-level locks
sql/sql_base.cc
sql/table.cc
sql/unireg.cc
sql/lock.cc

Table Modification Module
This collection of modules is responsible for operations such as creating, deleting, renaming, dropping, updating, or inserting into a table
sql/sql_update.ccc
sql/sql_insert.cc
sql/sql_table.cc
sql/sql_delete.cc

Table Maintenance Module
The Table Maintenance Module is responsible for table maintenance operations such as check, repair, back up, restore, optimize (defragment), and analyze (update key distribution statistics)
sql/sql_table.cc

Status Report Module
The Status Reporting Module is responsible for answering queries about server configuration settings, performance tracking variables, table structure information, replication progress, condition of the table cache, and other things
sql/sql_show.cc
sql/slave.cc
sql/sql_repl.cc

Abstracted Storage Engine Interface(Table Handler)
This module is actually an abstract class named handler and a structure called a handlerton
sql/handler.h
sql/handler.cc

Storage Engine Implementations(MyISAM, InnoDB, MEMORY, Berkeley DB)
Each of the storage engines provides a standard interface for its operations by extending the handler class mentioned earlier
sql/ha_myisam.h      sql/ha_myisam.cc
sql/ha_innodb.h      sql/ha_innodb.cc
sql/ha_heap.h        sql/ha_heap.cc
sql/ha_ndbcluster.h  sql/ha_ndbcluster.cc

Logging Module
The Logging Module is responsible for maintaining higher-level (logical) logs
sql/log.cc
sql/log_event.cc

Replication Master Module
The Replication Master Module is responsible for the replication functionality on the master
sql/sql_repl.cc

Replication Slave Module
The Replication Slave Module is responsible for the replication functionality of the slave
sql/slave.cc

Client/Server Protocol API
The MySQL client/server communication protocol sits on top of the operating system protocol (TCP/IP or local socket) in the protocol stack
sql/protocol.cc
sql/net_serv.cc

Low-Level Network I/O API
The Low-Level Network I/O API provides an abstraction for the low-level network I/O and SSL sessions
vio/ direcotry

Core API
The Core API is the Swiss Army knife of MySQL
It provides functionality for portable file I/O, memory management, string manipulation, filesystem navigation, formatted printing, a rich collection of data structures and algorithms, and a number of other things
mysys/ directory
strings/ directory
分享到:
评论

相关推荐

    MySQL 5.6 InnoDB Storage Engine Architecture

    MySQL 5.6 InnoDB Storage Engine Architecture

    MySQL8.4.0 LTS(mysql-8.4.0.tar.gz)

    MySQL Community Server 8.4.0 LTS(mysql-8.4.0.tar.gz),Source Code 适用于All Operating Systems (Generic) (Architecture Independent), Compressed TAR Archive

    MySQL 5.6.25 源码包+安装方法 (mysql-5.6.25.tar.gz)

    Generic Linux (Architecture Independent), Compressed TAR Archive MD5: 37664399c91021abe070faa700ecd0ed -install.txt: 安装方法 首先解压mysql-5.6.25.tar: $ tar xf mysql-5.6.25.tar -----------------...

    mysql-8.0.31.tar.gz 源码

    mysql-8.0.31.tar.gz源码,All Operating Systems (Generic) (Architecture Independent), Compressed TAR Archive

    mysql-connector-java-5.1.49.zip

    jdbc驱动 Platform Independent (Architecture Independent), Compressed TAR Archive AND Platform Independent (Architecture Independent), Compressed ZIP Archive

    c#项目打包教程(带mysql)

    在 Installation Architecture 中选择合适的安装架构,然后在 Application Files 中添加需要安装的文件。 八、生成安装包 点击 Build_setup 以生成安装包。 九、总结 本教程指导您如何使用 InstallShield LE 将 ...

    backend-architecture-nodejs-mysql-源码.rar

    标题 "backend-architecture-nodejs-mysql-源码.rar" 暗示了这是一个关于后端架构的项目,使用Node.js作为服务器端编程语言,并且采用了MySQL作为数据库管理系统。这个项目可能包含了实现特定功能的源代码,例如用户...

    mysql-8.0.26.tar.gz

    MySQL数据库Generic Linux版本:mysql-8.0.26.tar.gz 适用于:Generic Linux (Architecture Independent), Compressed TAR Archive

    CentOS6.3源码安装mysql5.6方法.pdf

    在这个页面中,你应该选择“Source Code”选项,然后选取适用于所有架构的压缩tar存档文件,例如“Generic Linux (Architecture Independent), Compressed TAR Archive”。 安装必要的依赖软件包是源码编译安装的...

    MySQL Cluster集群构建实战

    [MySQL Cluster 架构](image/mysql_cluster_architecture.png) MySQL Cluster架构中,管理节点、数据节点和SQL节点构成了一个完整的集群系统,其中数据节点和SQL节点可以根据需要进行横向扩展。 #### 二、案例分析...

    mysql-8.0.24-1.ky10.aarch64.rpm

    arm版本mysql-8.0.24供大家下载使用

    MySQL双主互备 + keepalived实战演练

    ### MySQL双主互备 + keepalived实战演练 #### 一、基础知识介绍 - **MySQL双主互备**:指两个MySQL服务器之间互相作为主备节点进行数据同步,任何一个节点都可以处理读写请求,同时也作为另一个节点的备份,提供...

    mysql-8.2.0-linux-glibc2.28-aarch64.tar

    mysql-8.2.0-linux-glibc2.28-aarch64.tar 适用于Generic Linux (Architecture Independent)

    MySQL Community Server 8.0.29(mysql-8.0.29.tar.gz)

    MySQL Community Server 8.0.29(mysql-8.0.29.tar.gz) Source Code 适用于:All Operating Systems (Generic) (Architecture Independent), Compressed TAR Archive

    mysql-boost-8.0.31.tar.gz

    All Operating Systems (Generic) (Architecture Independent), Compressed TAR Archive Includes Boost Headers (mysql-boost-8.0.31.tar.gz)

    mysql-8.2.0-linux-glibc2.28-aarch64.tar.xz

    mysql-8.2.0-linux-glibc2.28-aarch64.tar.xz 适用于Generic Linux (Architecture Independent)

    EBCMS.zip_On Message_cms

    EBay EBCMS content management system uses the popular PHP+MySQL architecture design, MVC design pattern, fully open source. With eBay content management system: Article management Model management ...

    MySQL Community Server 8.0.27(mysql-8.0.27.tar.gz)

    MySQL Community Server 8.0.27(Source Code),适用于Generic Linux (Architecture Independent), Compressed TAR Archive

    mysql-8.2.0-linux-glibc2.17-x86-64.tar

    mysql-8.2.0-linux-glibc2.17-x86_64.tar 适用于Generic Linux (Architecture Independent)

Global site tag (gtag.js) - Google Analytics