mysql 体系结构

mysql 体系结构_第1张图片

连接层:

connection pool(连接池)

原理:预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从‘缓冲池’中取出一个,使用完毕之后在放回去

作用:进行身份验证、线程重用、连接限制、检查内存、数据缓存、管理用户的连接、线程处理等需要缓存的需求


查看当前数据库的最大连接数限制:

mysql 体系结构_第2张图片

查看当前用户的最大连接数限制:(为0即不限制该用户的资源)

mysql 体系结构_第3张图片

SQL层:

管理服务和工具组件

作用:从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等方面管理数据库


SQL接口组件

作用:进行DML、DDL、存储过程、视图、触发器等操作和管理,用户SQL命令接口


解析器组件

作用:验证和解析SQL命令


查询优化器组件

作用:对SQL语句查询进行优化(‘选取、投影和连接’)


缓存和缓冲区

作用:由一系列小缓存组成的。如表缓存,记录缓存,key缓存,权限缓存等

查看mysql的缓存信息

mysql 体系结构_第4张图片

mysql 体系结构_第5张图片

Qcache_free_blocks |1 | 缓存空闲的内存块
Qcache_free_memory |1031832 |在query_cache_size设置的缓存中的空闲的内存
Qcache_hits | 0 | 缓存的命中次数
Qcache_inserts
| 0 | 查询缓存区此前总共缓存过多少条查询命令的结果
Qcache_lowmem_prunes
| 0 | 查询缓存区已满而从其中溢出和删除的查询结果的个数
Qcache_not_cached
|439808049 |
Qcache_queries_in_cache | 0 |

Qcache_total_blocks | 1 | 缓存总的内存块

插件式存储引擎:

mysql中数据都是使用不同的技术存储在文件或者内存中,不同的技术就有不同的存储机制,索引技巧和锁定水平,最终提供不同的功能和能力,这些不同的技术以及配套的相关功能在mysql中就称为存储引擎

myisam

查询速度快,有较好的索引优化和数据压缩技术。但是它不支持事务

innodb

支持事务,并且提供行级的锁定,应用很广泛

memory

适合存储临时数据

archive

适合存储历史数据,压缩比高且无损压缩


物理文件层:

支持的文件格式:ext3、ext4、ntfs、nfs

文件内容:数据文件、日志文件、配置文件、其他文件


译者介绍:家华,从事mysqlDBA的工作,记录自己对mysql的一些总结


你可能感兴趣的:(connection,layer,SQL,layer)