mysql
mysql
地瓜的土豆
这个作者很懒,什么都没留下…
展开
-
锁的解释(一)
更新数据的时候必然加独占锁,独占锁和独占锁是互斥的,此时别人不能更新;但此时你要查询,默认是不加锁的,(但有mvcc保证),但是查询可以手动加共享锁(select * from table_name lock in share mode),共享锁和独占锁(select * from table_name for update)是互斥的,但共享锁和共享锁不互斥。 表锁 1. 表锁 lock tables xxx Read: 表级共享锁 lock tables xxx WRITE: 表级独占锁 # 这在业务.原创 2021-06-17 13:07:10 · 76 阅读 · 0 评论 -
4个隔离级别
read uncommitted 读未提交 不允许脏写; 什么是脏写? 某一行数据为a 两个事务A,B,A更新a->A, 但并未提交,同时B更改A->B,提交B,但A未提交需要回滚B->a 不可能两个事务在没有提交的情况下去更新同一行数据; read committed 读已提交 不会发生脏读,脏写; A,B两个事务,A更改数据未提交时,不许B读取数据 repeatable read (默认级别) 不会发生脏读,脏写,不可重复读 一个A事务多次查询一个数据的值,哪怕别的事务(B)原创 2021-06-16 15:41:57 · 64 阅读 · 0 评论 -
innodb 索引合并
为什么会有索引合并? 在一个查询中使用到了多个二级索引 Intersection合并(交集) 将从多个二级索引中查询到的结果取交集; select * from table where key1 = 'a' and key3 = 'b'; 过程: 从idx_key1二级索引对应的B+树中取出key1='a’的相关记录; 从idx_key3二级索引对应的B+树中取出key3=‘b’的相关记录; 二级索引的记录都是由索引列+主键构成的,所以我们计算出这两个结果集中id值的交集; 按照上一步生成的id值列表进原创 2021-06-09 16:04:44 · 73 阅读 · 0 评论 -
InnoDB 表空间
页面组成 名称 大小 描述 作用 FileHeader 38B 页的通用信息 Page Header 56B 数据页专有的一些信息 Infimum + Supermum 26B 两个虚拟的行记录 分别表示页中的最小和最大记录 User Records 不确定 实际存储的行记录内容 Free Space 不确定 页中尚未使用的空间 Page Directory 不确定 页中的某些记录相对位置 File Trailer 8B 校验页是否完整 页面类型 In原创 2021-06-08 16:21:26 · 76 阅读 · 0 评论 -
mysql-系统数据库简介
mysql 这个数据库是核心,它存储了MySQL的用户账号和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。 information_schema 这个数据库保存着mysql服务器维护的所有其他数据库的信息,比如有哪些表,哪些视图,哪些触发器,哪些列,哪些索引等。这些信息并不是真实的用户数据,而是一些描述性信息,有时候也称为值元数据。 performance_schema 这个数据库里主要保持mysql服务器运行过程中的一些状态信息,算是对mysql服务器的原创 2021-06-08 14:38:23 · 165 阅读 · 0 评论