MySQL之逻辑架构和存储引擎

MySQL逻辑架构

外部程序访问步骤
Connectors --> Connection Pool --> Caches & Buffers -->SQL Interface
–> Parser --> Optimizer --> Pluggable Storage Engines

构件介绍
Caches:缓存,读信息(相关参数:have_query_cache)
Buffers:缓冲,写信息
Parser:解析器,分析Mysql语句
Optimizer:优化器,不改变查询结果前提,优化执行顺序
Pluggable Storage Engines:存储引擎,与表进行接触,返回数据时,会在缓存区存一份

查看mysql底层查询步骤:
①查看profiling参数,其默认值为0
②开启profiling,赋值为1
③SHOW profiles #显示最近几次的查询(包含查询序号)

SHOW profile 参数 for query 查询序号 #可查看详细查询过程
有关参数:
ALL:显示所有的开销信息。 BLOCK IO:显示块IO开销。
CONTEXT SWITCHES:上下文切换开销。 CPU:显示CPU开销信息。
IPC:显示发送和接收开销信息。 MEMORY:显示内存开销信息。
PAGE FAULTS:显示页面错误开销信息。 SOURCE:显示和Source_function,Source_file,Source_line相关的开销信息。
SWAPS:显示交换次数开销信息。
例:MySQL之逻辑架构和存储引擎

MySQL存储引擎

SHOW ENGINES #查看存储引擎
SHOW TABLE STATUS\G #查看表状态,可以看出存储引擎
MySQL之逻辑架构和存储引擎

常用存储引擎:
①MyISAM(系统自带表):不支持外键、事务,使用表锁,只缓存索引,不缓存数据,节省资源
②InnoDB(默认使用):支持外键、事务,使用行锁(适合高并发),缓存索引和数据,对内存要求高,并发写、事务、更大资源
③Archive引擎:档案引擎,只支持INSERT和SELECT操作,5.1前不支持索引,表的规格较小
④Blackhole引擎:黑洞引擎,没实现任何存储机制,会丢弃所有插入的数据,不做任何保存,服务器会记录Blackhole表的日志
⑤CSV引擎:将普通的CSV文件作为MySQL表来处理,但不支持索引,是一种数据交换机制
PS:csv为存储格式,可直接使用excel或文本编辑器操作,行间为换行符,列间为逗号
⑥Memory引擎:内存引擎数据存储在内存中,快速的访问数据,且数据不会被修改(常使用Redies)
⑦Federated引擎:联合引擎,远程关联查询,不建议经常使用,常使用使用数据中心来进行多库多服务器数据处理
⑧PERFORMANCE_SCHEMA引擎:主要用于收集数据库服务器性能参数,用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。
⑨MRG_MYISAM引擎:是一组MyISAM表的组合,也就是说它将MyISAM引擎的多个表聚合起来,但是它内部没有数据,真正的数据依然在MyISAM引擎的表中。