一、存储引擎概念:
- 存储引擎:MySQL服务自带的功能程序,MySQL服务支持多种存储引擎,例如:
MySQL 5.0/5.1 (MyISAM)
、MySQL 5.5/5.6 (InnoDB)
- 每种存储引擎功能和数据存储方式各不相同(存储引擎就是MySQL服务的功能分类)
- 当对表里的数据做select 、insert 、 update 、delete 访问时,MySQL服务根据表使用的存储引擎对数据做处理
二、MySQL服务体系结构:
mysql服务架构.png
MySQL服务由8个功能模块组成
-
管理工具(ManagementServices 8Utilities):安装MySQL服务软件后,提供的管理命令
-
连接池(Connectors):验证客户端连接时使用的用户和密码是否正确 同时验证数据库服务器是否有mysqld进程相应连接
-
SQL接口(SQL Intertace):把用户执行的SQL命令传递给本机的mysqld 进程
-
分析器(Parser):检查SQL命令的语句及对数据的访问权限
-
优化器(Optimizer):对要执行的 SQL命令做优化(是内置自带功能程序)
-
查询缓存(Caches & Buffers):划分出一定的物理内存空间给MySQL服务存储查找过的数据。
-
存储引擎(Pluggable Storage Engines):当对表里的数据做查询(select) 或写操作(insert /update /delete)会调用存储引擎对表中的数据做处理,至于如何处理取决表使用的存储引擎的功能
-
文件系统(File system):通常指的就是电脑的硬盘
三、MySQL服务的工作过程:
服务的工作过程.png
MySQL服务处理查询(selcet)访问的工作过程:
- 客户端向服务器发起连接请求
- 服务器接收到客户端连接请求并响应
- 回复结果给到客户端:
- 如果客户端执行的selcet访问,先在查询缓存里提取数据回复给客户端
- 如果数据库服务器在查询缓存里没有找到用户访问的数据,这时就要到数据库服务器的表里查找数据,对数据库目录下的表做访问是就会调用表使用的存储引擎对表做处理,然后把查找到的数据先放到查询缓存 在回复给客户端
- 断开连接
MySQL服务处理存储(insert)访问的工作过程:
- 客户端向服务器发起连接请求
- 服务器接收到客户端连接请求并响应
- 根据表使用的存储引擎 对表中的数据做对应的处理。
- 断开连接
四、在数据库服务器查看与查询缓存相关的配置项
- 默认禁用状态,一般使用单个服务器来存储MySql的缓存
mysql> show variables like "%query_cache%";
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 1048576 |
| query_cache_type | OFF | 默认禁用
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
网友评论