
MySQL
由浅入深
小白在哪呢
道路崎岖 砥砺前行
展开
-
MYSQL中Innodb表锁详解
意向锁的并发性:意向锁不会与行锁的共享/排它锁互斥,正因为如此,意向锁并不会影响到多个事务对不同数据行加排它锁时的并发性(不然直接用普通的表锁就行了)注:意向锁是有存储引擎自己的维护的,用户无法手动操作意向锁,在为数据行加共享/排它锁之前,Innodb会先获取该数据行所载数据表对应的意向锁。表级别的S锁、X锁:在对某个表执行增删改查语句的时候,Innodb存储引擎不会为这个表添加表级别的。3、IX、IS是表级锁,不会和行级的X,S锁发生冲突,只会和表级的X,S发生冲突。表锁(Table Lock)原创 2022-11-14 14:48:03 · 2376 阅读 · 1 评论 -
MySQL中什么是读锁和写锁
写锁:也叫排他锁,英文为(X),针对同一份数据,只能有一个事务(事务A)进行操作,其他事务(事务B)阻塞,不能读,也不能写,只有等事务A执行完毕,事务B等其他事务才能进行操作。读锁:针对同一份数据,多个事务的读操作可以同时进行互不影响,相互不阻塞。在Innodb中,读锁和写锁可以加载表上,也可以加在行上(行锁和表锁),读锁也叫共享锁(S),写锁也叫排他锁(X)从数据操作的类型划分,可以分为。原创 2022-11-14 10:49:57 · 2653 阅读 · 1 评论 -
MySQL中乐观锁与悲观锁的优缺点
从对待锁的态度来看锁的话,可以分为乐观锁和悲观锁,从名字中可以看出,两种锁是看待数据并发的思维方式,乐观锁和悲观锁并不是锁,而是。原创 2022-11-13 10:08:02 · 841 阅读 · 0 评论 -
MySQL之Redo日志刷盘策略超详细解析
针对这种情况,Innodb给出了Innodb_flush_log_at_trx_commit参数。当提交事务的时候,去看Innodb_flush_log_at_trx_commit这个值为2,马上就会把redo log buffer中的数据更新到page cache中,但是刷盘的时间由操作系统决定。另外,innodb存储引擎有一个后台线程,每隔1秒,就会把redo log buffer中的内容写到文件系统缓存(page cache),然后调用刷盘操作。,Innodb引擎会在写入Redo Log的时候。原创 2022-11-10 10:57:26 · 2466 阅读 · 3 评论 -
详解MySQL的三层架构(连接层、服务层、引擎层)
简述:连接层:用户与MYSQL服务进行TCP链接,校验用户身份,用户权限。服务层:用户写的SQL语句会到服务层进行解析,生成语法树。优化SQL语句,生成执行计划。引擎层:真正与磁盘进行交互,对数据进行存储和读取。原创 2022-11-07 16:36:56 · 4411 阅读 · 0 评论 -
MYSQL的缓冲池和查询缓存的区别
位置决定效率,提供缓冲池就是为了内存中可以直接访问数据,其次,频率决定优先级顺序,因为缓冲池的大小是有限的,比如磁盘有200G,但是内存只有16G,缓冲池大小只有1G,就无法将所有数据加载到缓冲池里,这时就涉及到优先级排序,会优先对使用频次高的热数据进行加载。在Innodb存储引擎中有一部分数据会放到内存中,缓冲池则占了这部分内存的大部分,他用来存储各种数据的缓存。Innodb缓冲池包括了数据页、索引页、插入缓冲、锁信息、自实行Hash和数据字典信息等。原创 2022-11-07 17:41:10 · 521 阅读 · 0 评论 -
MySQL中RedoLog的整体流程
做一个更新操作的事务,先把数据(data)读取到内存(databuffer),生成一条重做日志写入Redo Log Buffer,当事务commit时,将redo log buffer中的数据写入redo log file(采用追加方式),之后就是定期将内存中的数据刷入磁盘中。原创 2022-11-10 08:32:13 · 296 阅读 · 0 评论 -
Mysql高级详细梳理
Mysql高级笔记原创 2022-05-12 10:09:25 · 126 阅读 · 0 评论