原创

MySQL执行流程与架构

show global status like 'Thread%';--查询线程链接情况  

查看链接线程,默认的最大连接数是151,允许的最大的连接数是100000个

  

show global variables like 'max_connections';--查询最大连接数


show global variables like 'wait_timeout'; --交互式超时时间

--动态修改:
set global max_connections = 1024;
--静态修改是修改配置文件,my.cnf


show global variables like 'interactive_timeout'; --非交互式超时时间



通信方式:

  

mysql是半双工的链接方式


mysql控制服务端发送包的大小,默认是4M,这个值是可以修改

show global variables like 'max_allowed_packet'; --查询一次性传输数据大小


mysql的查询缓存,查看缓存开启状态,一般数据缓存是关着的,但是数据库一旦开启缓存,稍微修改一点数据,缓存失效

show global variables like 'query_cache%';


mysql有解析器

解析树


查询优化器  Optimizer,Exection Plans,基于开销cost来选择

show status like 'Last_query_cost'查询最后一条语句的开销


explain可以做执行计划工具,尝试模拟服务端会如何执行该sql,根据explain


存储引擎:

查看存储引擎:show table status from 'dbname';

show engines;可以查看数据库引擎的功能

  

memory是放在缓存里面,重启就没有了

csv可以用excel打开

innodb可以做事务,适合读写的链接

myisam是isam升级来的,适合读取较多的

不同场景下对于mysql的使用要求不一致,所以会有这么多的引擎

FeatureMyISAMMemoryInnoDBArchiveNDB
B-tree indexesYesYesYesNoNo
Backup/point-in-time recovery (note 1)YesYesYesYesYes
Cluster database supportNoNoNoNoYes
Clustered indexesNoNoYesNoNo
Compressed dataYes (note 2)NoYesYesNo
Data cachesNoN/AYesNoYes
Encrypted dataYes (note 3)Yes (note 3)Yes (note 4)Yes (note 3)Yes (note 3)
Foreign key supportNoNoYesNoYes (note 5)
Full-text search indexesYesNoYes (note 6)NoNo
Geospatial data type supportYesNoYesYesYes
Geospatial indexing supportYesNoYes (note 7)NoNo
Hash indexesNoYesNo (note 8)NoYes
Index cachesYesN/AYesNoYes
Locking granularityTableTableRowRowRow
MVCCNoNoYesNoNo
Replication support (note 1)YesLimited (note 9)YesYesYes
Storage limits256TBRAM64TBNone384EB
T-tree indexesNoNoNoNoYes
TransactionsNoNoYesNoYes
Update statistics for data dictionaryYesYesYesYesYes





mysql架构分层:

  

一条查询语句的执行流程

  


磁盘预加载,需要的数据的附近的数据预加载,磁盘加载数据到内存的最小单位:page(页)  默认是16KB


  







正文到此结束
本文目录