高性能mysql笔记总结—chapter01

数据库的逻辑架构

mysql是客户端和服务端的架构,一个客户端占有一个客户端进程的线程连接,线程是会被客户端缓存起来的。

第一层是处理认证和连接

第二层用来解析和优化查询

第三层是用来存储引擎层

特点是存储引擎是可插拔的,也就是说可以替换的

并发问题

加表级别锁或者行级别的锁,表级别的锁是服务端就支持的,而行级别的锁是存储引擎层支持的。

读写锁的机制,读锁是可重复读,写锁是排它锁。

事务

acid,原子性,一致性,隔离性,持久性四个特性

事务的隔离级别

不可重复读,读以提交,可重复读,串行读

事务日志

先修改内存中的值,然后将事务的执行语句顺序写到磁盘,顺序写比较快,然后再另外写入到磁盘中,这种方式叫write ahead logging

mvcc

多版本事务控制,是通过保存快照来实现的。是指每一行都会多两个字段,分别表示行的创建时间和删除时间,实际上,就是行级别锁的一种实现方式。

mysql的存储引擎

主要其实就两种,分别是innodb和myisam是最常用的,95都是选择的innodb

相关推荐
利刃大大1 分钟前
【SpringBoot】配置文件 && 日志输出 && lombok
java·spring boot·后端
C+++Python6 分钟前
如何选择合适的锁机制来提高 Java 程序的性能?
java·前端·python
long31614 分钟前
类与对象 | 低级别设计 (LLD)
java·spring boot·学习·程序人生·spring·设计模式·学习方法
专注于大数据技术栈14 分钟前
java学习--String、StringBuilder、StringBuffer 的核心区别
java·学习
LiYingL17 分钟前
USO“,一种基于分离和奖励学习的新方法:走在将风格和主题融为一体的图像生成的最前沿
人工智能·学习·计算机视觉
我命由我1234518 分钟前
Java 开发问题:包名 ‘com.my.compressimagetest‘ 与同名的类发生冲突
java·开发语言·学习·java-ee·intellij-idea·学习方法·intellij idea
⑩-23 分钟前
Sleep与Wait的区别
java·开发语言
程序员阿鹏24 分钟前
List和Set的区别
java·开发语言·数据结构·后端·list
ICscholar24 分钟前
深度Q网络(DQN)及其变体双深度Q网络(DDQN)对比学习
人工智能·神经网络·学习
CHANG_THE_WORLD25 分钟前
6.2.在汇编层面,数据本身没有类型
java·服务器·汇编