最近在梳理mysql的知识和原理,强烈推荐:小孩子4919—《Mysql是怎样运行的》。写的很详细
MYSQL简介
Mysql采用客户端/服务端架构,用户通过客户端程序发送增删改查请求,服务器程序收到请求后处理,并把处理结果返回给客户端。Mysql
安装目录的bin目录下存放了许多可执行文件,其中有一些是服务器程序(eg: mysqld、mysqld_safe),有一些客户端程序(eg: mysql,mysqladmin);
启动分类
-
UNIX操作系统下启动
- mysqld; -- 直接启动服务 - mysqld_safe; -- 间接调用mysqld 监听服务运行状态,将错误信息写入日志中 - mysql.server; -- 间接调用mysql_safe 可使用start参数启动 stop 参数关闭 - mysqld_multi。 -- 同时启动多个客户端实例 -
Windows操作系统下启动
- mysqld; - 将mysqld注册为windows服务。
通信方式
启动客户端和服务器进程在通信时采用下面几种方式:
- tcp/ip;
- 命令管道或共享内存;
- unix套接字。
模块分类
以查询请求为例,服务器程序在处理客户端发送过来的请求时,大致分为以下几个部分。
- 连接管理: 主要负责连接的建立和信息的认证。
- 解析与优化:主要负责进行查询缓存、语法解析、查询优化。
- 存储引擎: 主要负责读取和写入底层表的数据。
执行引擎
MYSQL支持的存储引擎有好多种,他们的功能各有侧重,我们常用的就是Innodb和MyISAM其中Innodb是服务器程序默认的存储引擎。
-
查看当前服务器程序支持的存储引擎:
show engines;

-
创建表时的存储引擎
create TABLE 表名(建表语句) engine = 存储引擎名; eg: CREATE TABLE settingEngine(id int PRIMARY key) ENGINE = INNODB; -
修改表的存储引擎
ALTER TABLE 表名 engine = 存储引擎名称; eg: ALTER TABLE settingEngine ENGINE = MyISAM;
本文深入介绍了MySQL的运行机制,包括其客户端/服务端架构、不同启动方式、通信方式及模块分类等内容。此外还讲解了存储引擎的选择与切换方法。
1313





