mysql InnoDB 中概念及执行sql过程记录

Mysql 全局性能

查询存储引擎-  show create table 表明;

查询数据库(此时客户端连接数)SHOW STATUS LIKE 'Threads_connected';

查看死锁情况 SHOW ENGINE INNODB STATUS;     查看

查看最大连接数据 SHOW VARIABLES LIKE 'max_connections';

Mysql全局查看参数 SHOW GLOBAL STATUS;

当前执行的情况SHOW PROCESSLIST;

理想的情况:explain 

key :不为null

type: ref<eq_ref<renge

Extra:   为 null,或者 using index (索引覆盖) ,using index condiment(索引下推)

索引概念

聚集索引------ B+树:非叶子节点存储的是索引值, 叶子节点存储的是数据,不需要回表查询。

非聚集索引------ B+树:非叶子节点存储的是索引值,叶子节点存储的是主键值+索引值。

索引覆盖(减少回表减少Io次数,遵循最左原则。 Index_id(key1,key2) select key2 from tables where key2 =9 ------   联合索引在用遵循会提高效率。

索引下推------ like 中比较常用。前提联合索引 name_id(name1,name2,name3). Mysql 模式中默认是开启的,  select *from tables where name1=“李四” and name2 like “%忘 and name3 like “%在”

执行过程

一条sql语句,客户端与服务端建立联系(连接器)。是否开启缓存(缓存服务),(解析器)分析sql语句的正确性,表名,条件等 (优化器)生成执行计划,分析索引情况,最后交给 (执行引擎)获取结构数据,添加到缓存中。

Update 语句怎么更改数据库的:

Buffer pool 会在内存中查找,没有就将磁盘中的数据页加载到内存中,并将修改前的数据记录到undolog日志中(作用:在事务回滚时用到,保证事务的原性和一致性)。

Buffer pool 在内存中修改数据,并将该页数据标记为脏页状态,记录更改后的数据sql在redolog中。

开启事务提交,inodb引擎会将redolog文件写到磁盘中,再次过程中也会将事务操作记录到binlog日志中,次日志包含(事务信息(时间,事务ID),sql语句,表明)。

此时会有二阶段提交策略保证主从数据的一致性。

在redolog 准备阶段, binlog 写入同步阶段, redolog 提交阶段,保证XID事务ID 一致就可以完成这次事务的完整性。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值