最近我觉得自己各项技能都是随着工作而学习的,感觉总有一些知识没有掌握,特准备在基于《mysql权威指南》和《高性能Mysql》这两本书来系统学习下,把每次学习的笔记整理成博客的形式。一是为了加深自己的印象,二是为了给自己提供更好的学习能力,三是和大家共同分享。
1、逻辑架构
第一层:并不是Mysql独有,大多数基于网络客户端、服务器工具,例如:连接处理、授权认证、安全等
第二层:核心服务层,包括查询解析、分析、优化、缓存、内置函数,所有跨域存储引擎都在这一层:存储过程、触发器、视图
第三层:包含存储引擎,负责Mysql
1或on表示启用,0或off表示关闭。
Mysql可以通过执行 set transaction isolation level命令来设置隔离级别,新的隔离级别会在下一个事务开始的时候生效。
例如:set session transaction isolation level read committed;
在事务中混合使用存储引擎
如果在事务中混合使用了事务型和非事务型的表(InnoDB和Myisam)正常提交是不会有问题的,如果事务回滚,非事务型的表变更是无法撤销的,这会导致数据库处于不一致状态。
隐式和显式锁定
InnoDB在事务执行过程中,随时都可以执行锁定,锁只有在执行commit或者rollback的时候才会释放,并且所有的锁都是在同一时刻被释放,前面描述的都是隐式锁,InnoDB会根据隔离级别在需要的时候自动加锁。
另外,InnoDB也支持通过特定的语句进行显示锁定
select … lock in share mode