数据库的逻辑架构
mysql是客户端和服务端的架构,一个客户端占有一个客户端进程的线程连接,线程是会被客户端缓存起来的。
第一层是处理认证和连接
第二层用来解析和优化查询
第三层是用来存储引擎层
特点是存储引擎是可插拔的,也就是说可以替换的
并发问题
加表级别锁或者行级别的锁,表级别的锁是服务端就支持的,而行级别的锁是存储引擎层支持的。
读写锁的机制,读锁是可重复读,写锁是排它锁。
事务
acid,原子性,一致性,隔离性,持久性四个特性
事务的隔离级别
不可重复读,读以提交,可重复读,串行读
事务日志
先修改内存中的值,然后将事务的执行语句顺序写到磁盘,顺序写比较快,然后再另外写入到磁盘中,这种方式叫write ahead logging
mvcc
多版本事务控制,是通过保存快照来实现的。是指每一行都会多两个字段,分别表示行的创建时间和删除时间,实际上,就是行级别锁的一种实现方式。
mysql的存储引擎
主要其实就两种,分别是innodb和myisam是最常用的,95都是选择的innodb