一、MySQL 历史:
1996年发布,2003年MySQL加入innodb。
历史版本有5.5 /5.7;最新版本8.0.
二、MySQL原理:
当执行SQL的时候,数据库底层到底发生了什么?
MySQL Server包括:连接层,service层,存储引擎层
Driver jdbc 3306 连接类型:同步(查到后给过来)/异步(查到后暂不给)
jdbc连接方式:长连接,短连接(默认是长连接) 客户端:navcat sqlyong
协议:TCP/Socket
连接池: 安全认证
目前连接数:thread( show global status like ‘Thread%’)
最大连接数:max_connections
最大连接时间: %wait_timeout% (show global variables like ‘%wait_timeout%’)
MySQL使用了缓存?
官网解释:Query cache was deprecated in MySQL 5.7 and removed in MySQL 8.0
说明以前是由Query cache缓存的, 在5.7和8.0被废弃了。
MySQL对SQL语句进行词语解析:
预处理器:确定语义是否符合要求
优化器:查询表的先后,基于cost成本,生成一个执行计划
Show global variables like ‘%optimizer%’
查询执行成本的SQL,(需要命令行执行):
select * from information_schema.OPTIMIZER_TRACE;
包括预处理,优化,连接
Explain step包括: SQL准备阶段,优化阶段,执行阶段
优化器生成一个执行计划(execution),具体由执行器exectuor执行后给InnnoDB Engine生成DB file,更新query cache。
当然,如果数据在query cache缓存中存在,则直接从缓存取。整理流程如下:
·
主流存储引擎有哪些?InnoDB 、memory,myisam
查看以下目录下由InnoDB ,myisam相关文件
插件式存储引擎innoDB有哪些优势?
MVCC,事务,外键,视图,行锁,B+树索引,块,安全,缓存。
参考MySQL官网表格:
InnoDB存储引擎整体架构: