MySQL实例=mysqld后台守护进程+master thread+工作的thread+预分配的内存
数据库管理系统
RDBMS:关系型数据库管理系统
适用于安全性要求高的的数据以及关系比较复杂的数据
MySQL,MSSQL,ORACLE,PG
NOSQL:非关系型数据库管理系统
适用于高性能存取数据,一般是配合RDBMS进行使用
针对大数据处理分析,分布式架构更加擅长
REDIS,MEMCACHED,MONGODB
MySQL程序结构
一条SQL语句执行过程
连接层:
1.提供连接协议TCP/IP/,socket
2.验证用户信息
3.提供专用线程,接收用户sql,返回结果
show processlist 查看连接线程基本情况
SQL层:
1.接收上层SQL语句
2.验证语法,语义,判断SQL类型
3.权限检查
4.解析器:对语句执行前,进行预处理,生成多种执行计划
5.优化器:对解析器得出的多种执行计划,进行判断,选择最优计划
6.执行器:根据最优执行计划,找出数据在磁盘上的位置
7.提供查询缓存,默认没开启,一般用redis tair 替代查询缓存功能
8.提供日志记录,binlog,默认买开启
存储引擎层:
1.根据SQL层的结果,去磁盘上拿数据
2.将16进制的磁盘数据,交由sql结构化化成表
3.连接层的专用线程返回给用户
逻辑结构
物理结构
一条SQL语句执行过程
连接层:
1.提供连接协议TCP/IP/,socket
2.验证用户信息
3.提供专用线程,接收用户sql,返回结果
show processlist 查看连接线程基本情况
SQL层:
1.接收上层SQL语句
2.验证语法,语义,判断SQL类型
3.权限检查
4.解析器:对语句执行前,进行预处理,生成多种执行计划
5.优化器:对解析器得出的多种执行计划,进行判断,选择最优计划
6.执行器:根据最优执行计划,找出数据在磁盘上的位置
7.提供查询缓存,默认没开启,一般用redis tair 替代查询缓存功能
8.提供日志记录,binlog,默认买开启
存储引擎层:
1.根据SQL层的结果,去磁盘上拿数据
2.将16进制的磁盘数据,交由sql结构化化成表
3.连接层的专用线程返回给用户